CO214: Data structures and Algorithms

Course Number : CO214
Course Title : Data structures and Algorithms
Credits : 3
Prerequisites : Computer Programming (CO212)
No Course Content Time Allocated (hours)
      L T P A
01 Introduction
Programs = Algorithms + Data Structures, Abstract Data Types (ADT)
1      
02 Correctness and Complexity analysis
Asymptotic Notations and Standard Efficiency Classes, Complexity of recursive algorithms, Time-space tradeoffs, Empirical measurements of performance, Using preconditions, post-conditions and invariants to verify correctness
3 2    
03 Simple Search & Sort
Sequential and binary search algorithms, Quadratic time sorting algorithms (Selection, Insertion) as instances of Brute-force strategy
3 1 2 2
04 Efficient Sorting
Review of recursion. Quick-sort, merge-sort as instances of Divide-and-conquer strategy, Radix / bin sorting
4 1 2 2
05 Basic Data Structures:
Linked lists, Stacks and queues , Priority queues (Heaps), Heap-sort
3   2 3
06 Hashing and Sets
Hash functions and codes, Collision handling, The Set ADT, Implementing Sets using hash tables
3   2 3
07 Trees
The Tree ADT. Binary search trees, Tree traversals, Tries and B-Trees.
4   2 4
08 Graph Algorithms
Representations of graphs (adjacency list, adjacency matrix), Depth and breadth-first traversals, The Greedy algorithmic strategy: Dijkstra's shortest path, Dynamic programming: Floyd's Transitive closure, Prim's minimum spanning tree
5 2 4
Total 26 4 12 18
Assessment Percentage Marks
Continuous Assessment 40  
         Tutorials   10
         Practical work   10
         Assignments   20
Written Examinations 60  
         Mid-semester   20
         End-semester   40