IT 238: Data Structure and Algorithms: Course Objectives
IT 238: Data Structure and Algorithms: Course Objectives
Credits:3
Lecture Hours: 48
Course Objectives
Main objective of this course is to introduce data abstraction and data representation in memory,
describe, design and use of elementary data structures such as stack, queue, linked list, tree and
graph, introduce algorithms and their complexity.
Course Description
The course contains Introduction of data structure and algorithms, Complexity Analysis, Linked
Lists, Stacks, Queues, Recursion, Trees, Graph, Sorting, Searching and Hashing.
Course Details
Unit 1: Introduction to data structure and algorithms 4 LHs
Data types, Data structure and Abstract date type (ADT), Operations performed in data
structure, Introduction to Algorithms, Computational complexity, Asymptotic notations:
Big-O, Big-Ω and Big-Ө Notation, Properties of Big-O, Ω and Ө Notation, Finding
Asymptotic Complexity: Examples. The Best, Average, and Worst-Case analysis.
Laboratory Works:
The laboratory work consists of implementing the algorithms and data structures studied in the
course. Lab work will be implemented on Java. Student should implement at least following
concepts:
Array and Linked List implementation of List
Stack operations and Queue operations
Recursion
Linked List implementation of Stack and Queues
Binary Search Tree
Graph Representation
Spanning Tree and Shortest Path Algorithms
Sorting, Searching and Hashing algorithms
Suggested Readings
M. T. Goodrich, R. Tamassia, M. H. Goldwasser, “Data Structures and Algorithms in Java”,
Wiley publication, Sixth Edition, 2014.
Drozdek Adam, “Data Structures and Algorithms in Java”, Cengage Learning Asia, Third
Edition, 2010.
Duncan A. Buell, “Data Structures Using Java” Jones & Bartlett Publishers, 2011
Robert Lafore, “Data Structures and Algorithms in Java”, Sams Publishing;
Y. Langsam, M. J. Augenstein and A. M Tenenbaum, “Data Structures using C and C++”,
Pearson Education Inc, 2015