Instructors: Nikhil Balaji and Srikanta Bedathur
Credits: 3-0-4-5
Lectures: Tue, Thu & Fri 11:00 - 11:50 am
Labs: Mon, Tues, Thurs, Fri 2:00 - 5:00 pm
Location: LH325.
Programming Language: Java
Course Description: Here is a tentative list of topics that will be covered in the course:
- Abstract data types
- Basic Data-structures: Arrays, Stacks, Queues, Linked-lists
- Dynamic Arrays, Aysmptotic Complexity
- Sorting: merge, quick, radix, heap
- Dictionaries: Skip-lists, Hashing
- Trees, Tree Traversal, Binary Search Tree
- Priority Queues, Binary Heaps
- AVL Trees, 2-4 trees, B-trees, Multiway search tree, and applications
- Introduction to Graphs, Adjacency matrix and List representation
- Breadth first search and applications
- Depth first search in directed and undirected graphs and applications
- Dijkstra’s algorithm for shortest path, Minimum Spanning Tree
Prerequisites: COL 100
Setting up Java
Java set up: It is advised that you install JDK 11.0.17. You must ensure that your submission code runs in JDK 11.0.17 environment.
Note: You are expected to learn Java (and use object oriented programming) on your own. For this you should refer to the Java module below and the exercises in it (thanks to Prof. Amitabha Bagchi for making these available).