CS121 Data Structures and Algorithms

  • Course Outline
    This course surveys the most important algorithms and data structures in use on computers today. Particular emphasis is given to effective design of important data structures like stacks, Queues and Hashing. I will also discuss algorithms for sorting, searching, and string processing. Fundamental algorithms in a number of other areas are covered as well, including geometric and graph algorithms. The course will concentrate on developing implementations, understanding their performance characteristics, and estimating their potential effectiveness in applications.
  • Taught by:
  • Class Meetings
    • TBD
  • The necessary evil - marks, exam, etc.
    The evaluation for the course will be based on midterm test1, midterm test2, assignments and final exam. There will be 2-4 assignments that will carry weightage for your final evaluation. In addition, a number of problem sheets will be given which are for your practice, and in particular, solving them will be useful for getting good marks in the exams.
  • Some cautionary notes on tests, assignments and problem sheets
    This course is essentially a problem solving course, and so there will be lots of problems in the form of assignments and practice problems. Anything you hand in is assumed to be done by you on your own. If you had consulted any resource (including books, Internet, or other persons), then please mention that in the work you hand in. Copying from any source without acknowledgement will result in unwanted consequences for everyone! There are no excuses for failure to uphold academic integrity. If I believe that a student is guilty of academic dishonesty, I will refer the matter to the disciplinary action committee, who could require withdrawal from the course.
  • Supplementary materials
Introduction to Data Structures and Algorithms
Stacks
Queues and Linked Lists
Hashing
Trees
Tree Walks / Traversals
Quick Sort
AVL Trees
Trees
Balanced Search Trees
Geometric Applications of BSTs, Kd tree
Red Black Trees
Insertion in Red Black Trees
Priority Queues
Binary Heaps
Graphs
Data Structures for Graphs
Two Applications of Breadth First Search
Depth First Search
Applications of DFS
Minimum Spanning Trees
The Union
Prims Algorithm for Minimum Spanning Trees
Single Source Shortest Paths
Correctness of Dijkstras Algorithm
Single Source Shortest Paths
  • Introduction to Algorithms by Cormen, Leiserson, Rivest and Stein.
  • Data Structures & Algorithms, 1e by Aho, Ullman, Hopcroft