CS301 : Data Structures

Course Overview

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 Calendar

1 Introduction
2 List Implementation
3 Linked List
4 Linked List and Its Types
5 ADT and Stack
6 Uses of Stack
7 Infix and Postfix Expressions
8 Implementation of Stack
9 Queues
Assignment No. 1
10 Priority Queues
11 Binary Tree
12 Implementation of Binary Tree
Quiz No. 1
13 Binary Search Tree
14 Recursion
15 Level-order Traversal of a Binary Tree
Assignment No. 2
16 Deleting a Node from BST
17 Reference Variables
18 Usage of const keyword
Quiz No. 2
19 Degenerate BST
20 AVL Tree [1/2]
21 AVL Tree [2/2]
22 AVL Tree Rotations [1/2]
23 AVL Tree Rotations [2/2]
24 Uses of Binary Trees
Midterm Examination
25 Expression Tree
26 Huffman Encoding
27 Properties of Binary Tree
28 Inorder Traversal in Threaded Trees
29 Heap [1/2]
30 Heap [2/2]
31 Implementation of Heap
32 Methods of Heap
33 Uses of Heap & Disjoint Set ADT
Graded Discussion Board
34 Equivalence Relations
35 Dynamic Equivalence Problem
36 Union and Find Operations of Disjoint Set ADT
Quiz No. 3
37 Image Segmentation & Maze Generation
38 Table ADT
39 Searching an Array: Binary Search
Quiz No. 4
40 Skip List
41 Skip List (cont..) & Hashing
42 Collision Resolution Methods in Hashing
43 Applications of Hashing
44 Sorting
45 Sorting and Course Overview
Final Term Examination
46 Pre assessment