**Programming and Data Structures**
Programming in C, Arrays, Recursion, stacks, queues, linked lists, trees, binary search trees, binary heaps, graphs.

**Algorithms **

Searching, sorting, hashing.
Asymptotic worst case time and space complexity. Algorithm design techniques: greedy, dynamic
programming and divide‐and‐conquer. Graph search, minimum spanning trees, shortest paths

**Very important topics**
C programming, recursion, linked lists, trees, searching, sorting, hashing, Asymptotic notations

**TextBooks:**
Introduction to Algorithms by

*Rivest, Cormen, Stein, Leiserson*