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
Assignment No. 1
9 Queues
10 Priority Queues
11 Binary Tree
Quiz No. 1
12 Implementation of Binary Tree
13 Binary Search Tree
14 Recursion
15 Level-order Traversal of a Binary Tree
16 Deleting a Node from BST
17 Reference Variables
18 Usage of const keyword
19 Degenerate BST
20 AVL Tree [1/2]
Graded Discussion Board
21 AVL Tree [2/2]
22 AVL Tree Rotations [1/2]
Quiz No. 2
Mid Term Exams
23 AVL Tree Rotations [2/2]
24 Uses of Binary Trees
25 Expression Tree
26 Huffman Encoding
27 Properties of Binary Tree
Assignment No. 2
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
Quiz No. 3
34 Equivalence Relations
35 Dynamic Equivalence Problem
36 Union and Find Operations of Disjoint Set ADT
37 Image Segmentation & Maze Generation
38 Table ADT
39 Searching an Array: Binary Search
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
46 Pre assessment