Algorithms are recipes for solving computational problems. In this course we will study fundamental algorithms for solving a variety of problems, including sorting, searching and graph algorithms. More importantly, we will focus on general design and analysis techniques that underlie these algorithms. For example, we will examine divide-and-conquer, dynamic programming, greediness, and probabilistic approaches. With an understanding of these techniques, you will be prepared to design some of your own algorithms. Algorithms are judged not only by how well they solve a problem, but also by how effectively they use resources like time and space. We will learn techniques for analyzing time and space complexity of algorithms and will use these to evaluate tradeoffs between different algorithms. We will also see that problems can be organized into a hierarchy that measures their inherent difficulty by the efficiency of the best possible algorithm for solving them.
This course is designed to introduce students with the designing and analysis of the computer algorithms and assist them in solving a variety of complex problems by focusing on different techniques. This course will also help them:
- In application of different algorithmic designs
- Analyzing the performance of algorithms
- Synchronizing common engineering problems with efficient algorithms
- Develop a conceptual understanding for better programming experience
Ask a Question
e-book enables you to access interactive reading material to strengthen the skills learned in the sessions.
Online Lab enables you to practice the application of concepts you have learnt in the sessions in the virtual environment.
Tutorials enables you to get easy learning with clear, crisp, and to-the-point content on a wide range of technical and non-technical subjects without any preconditions and impediments.