Course Description

This course aims to introduce basic data structures and performance measurement of algorithms which are to be used as tools in designing solutions to problems. Topics include: methods of analysis of algorithms including asymptotic notations and empirical measurements of performance, pointers and recursion, abstract data type concepts, different data structures including concepts, implementation and operations for maintaining them; such data structures are: lists and linked-lists, stacks, queues, priority queues, trees and its traversal, binary search trees, heaps, hash tables and graphs and graphs’ algorithms. Also, important sorting and searching algorithms will be discussed including: bubble sort, insertion sort, selection sort, merge sort, heap sort and radix sort, sequential search and binary search..

Course Requirements

  • Pre-requisite: CS2301 – Computer Programming 2
  • Credit Hours: 4 CHs
  • Contact Hours: (3 hours lecture, 2 hours Lab)

Textbook

Title: “Data Structures and Abstractions with Java”
Author: Frank M. Carrano
Publisher: Pearson 2015
Year/Edition: 2015

Topics

  1. Chapter 1: ِAlgorithm Analysis
  2. Chapter 2: Recursion
  3. Chapter 3: Lists
  4. Chapter 4: Stacks
  5. Chapter 5: Queues
  6. Chapter 6: Trees
  7. Chapter 7: Binary Search Trees and Priority Queues
  8. Chapter 8: Graphs