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).