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.