The Analysis and Design of Algorithms lab gives the introduction about the basics of computational complexity analysis and various algorithm design techniques, focusing on both the underlying mathematical theory and practical considerations of efficiency. Topics include asymptotic complexity bounds, techniques of analysis, algorithmic strategies, and various algorithmic design patterns like divide and conquer, dynamic programming and greedy algorithms. It also covers major algorithms and data structures for searching and sorting, graphs, and some optimization techniques. The aim is to provide students a good knowledge with solid and strong foundations to deal with a wide variety of computational problems in the real world.
Major Equipment/Software used in the Lab along with the images: