CS301 - Data Structures
Course Page
Q & A
Course Category: Computer Science/Information Technology
Course Level: Imdregraduate
Credit Hours: 3
Pre-requisites: CS201

Course Synopsis

Data Structures is a core course in a typical undergraduate Computer Science Curriculum. The topics covered in the course are among the most fundamental material in all of computer science. The course prepares the students for (and is a prerequisite for) the more advanced material students will encounter in later courses. The course will cover well-known data structures such as dynamic arrays, linked lists, stacks, queues, tree, heap, disjoint sets and table. Three goals will be accomplished: (1) Implement these structures in C++ (2) Determine which structures are appropriate in various situations (3) Confidently learn new structures beyond what's presented in this class

Course Learning Outcomes

At the end of the course, you should be able to:
  • Understand Abstract Data Types such as Lists, Queues etc.
  • Understand and program Stack operations (Push, Pop, isEmpty)
  • Understand and implement Queue Operations (Insert, Remove) using Linked Lists
  • Describe binary Trees
  • Know about height balanced trees and application of trees

Course Contents

Introduction, The Array data type, The List abstract data type (ADT), Linked lists, Stacks, Queues, Trees, AVL Trees ,Huffman encoding , The Heap ADT, Priority queue implementation using the heap ADT, The Disjoint Sets ADT, The Table ADT, Implementation using arrays, Skip lists, Table ADT implementation using Hashing, Collision resolution in Hashing, Other uses of Hashing, Sorting, and Selection sort, Insertion sort, Bubble sort algorithms, Divide and conquer strategy: Merge sort, Quick sort.

Course Related Links

Nice tutorials with animation of various data structures
Intro to Data Structures and Algorithms, Rutgers University
These tutorials explain the C++ language from its basics up to the newest features of ANSI-C++, including basic concepts such as arrays or classes and advanced concepts such as polymorphism or templates. The tutorial is oriented in a practical way, with working example programs in all sections to start practicing each lesson right away
Data Structures and Other Objects Using C++
This is an excellent and strongly recommended review of the topics of C++ that are essential for this course
Dictionary of algorithms and data structures
Lecture Notes : Data Structures
Course Instructor

Dr. Sohail Aslam
Ph.D in Computer Science
University of Illinois,
at Urbana-Champaign

Data Structures and Algorithm Analysis in C++ by Mark Allen