Data Structures
This course introduces fundamental data structures and algorithm analysis techniques essential for efficient problem solving. Topics include arrays, linked lists, stacks, queues, trees, graphs, hashing, sorting, and searching algorithms. Emphasis is placed on time and space efficiency, algorithm design, and comparative analysis of different data structure implementations.
Term: Fall
Location: Rooms 905, 621, 1023
Time: Sunday–Tuesday, 02:15 PM – 03:15 PM
Course Overview
This course is designed to equip students with a strong foundation in data structures and algorithm design using the C programming language. Students will learn how to organize and store data efficiently, analyze algorithm performance, and apply appropriate data structures to solve complex computational problems.
By the end of this course, students will be able to:
- Explain fundamental concepts and operations of data structures
- Apply appropriate data structures to solve real-world problems
- Analyze and compare algorithm performance based on time and space complexity
Prerequisites
- CSC 183: Programming in C
- Basic understanding of programming logic and problem solving
Textbooks
- Primary: Data Structure by Seymour Lipschutz (McGraw Hill, 2014)
- Reference:
- Introduction to Algorithms by Cormen et al. (MIT Press, 2009)
- Algorithms by Sedgewick and Wayne (Addison-Wesley, 2014)
Grading
- Quizzes/Class Tests: 10%
- Mid-Term Exam: 25%
- Final Exam: 50%
- Attendance & Participation: 5%
- Assignments/Presentation: 10%
Schedule
| Week | Date | Topic | Materials |
|---|---|---|---|
| 1 | Course Introduction & Basics Course policies, overview of data structures, basic terminologies, and elementary data organization. | ||
| 2 | Algorithm Analysis Introduction to asymptotic notation, time and space complexity, and trade-offs. | ||
| 3 | Arrays Array representation, traversal, insertion, deletion, and applications. | ||
| 4 | Searching & Sorting Linear and binary search, bubble sort, and introduction to efficiency. | ||
| 5 | Linked Lists Singly, doubly, and circular linked lists with operations and applications. | ||
| 6 | Stacks & Expressions Stack operations, infix, prefix, postfix expressions, and evaluation. | ||
| 7 | Queues Queue, circular queue, priority queue, and deque operations. | ||
| 8 | Trees Tree traversals, binary search trees, AVL trees, and balanced trees. | ||
| 9 | Advanced Trees B-trees, heap trees, binomial heaps, and Fibonacci heaps. | ||
| 10 | Hashing Hash tables, collision resolution techniques, and applications. | ||
| 11 | Graphs Graph representation, adjacency matrix/list, BFS and DFS traversal. | ||
| 12 | Strings & Dictionaries String operations and dictionary data structures. | ||
| 13 | Review & Wrap-up Course review and preparation for final examination. | ||
| 14 | Final Exam Comprehensive assessment covering all topics. |