**Indian Engineering Education** to be FREE from March 15, 2019

Includes:

- 2 hours of lecture Videos
- 83 hands-on practice exercises
- 62 Assessment exercises
- 275 code analysis exercises
- 324 knowledge based questions
- 10 Live connect sessions

(Master classes) - Lifetime access

Contact Us

+91 95669 33778

+91 95669 33778

ABOUT THE COURSE

This course provides a solid foundation in algorithm analysis and design. Specifically, the learning outcomes of this course include, basic knowledge of computational complexity, ability to analyze asymptotic runtime complexity of algorithms and ability to understand and design algorithms using Divide and Conquer Strategy, Greedy Strategy, Dynamic Programming, Backtracking and Branch and Bound Design Strategy.COURSE OBJECTIVES

Upon successful completion of the course, the learner will be able to :- Comprehend the given problem and predict the algorithmic strategy for solving them
- Analyse the complexity of the given algorithm with respect to time and space
- Find different methods to reduce the complexity of the algorithm by using optimised strategies
- Optimise the problem by dividing the dataset, solving the smaller dataset and combining the local solutions to form the global solution, using Divide and Conquer strategy
- Apply straight forward approach to solve the problem without thinking about the past and future, using Greedy Strategy
- Reduce the time complexity of the algorithm greatly just by including a temporary memory (either a variable or a 1D array or a 2D array), to store the intermediate optimal solution, using Dynamic Programming Strategy
- Reduce the time complexity of any optimisation problem that consumes non-polynomial time to some extent, using Backtracking and Branch and Bound strategies
- Solve same problem with different constraints with respect to time and space as mentioned in the problem statement

An algorithm is a well-defined procedure that allows a computer to solve a problem. Another way to describe an algorithm is a sequence of unambiguous instructions. The use of the term 'unambiguous' indicates that there is no room for subjective interpretation. In this module you will get an introduction about the different design strategies in programming.

- 1 Video
- 5 Hours
- 41 Problems

The complexity of the algorithm is analysed with respect to time and space. In this module, you will learn about analysing the complexity of a given problem with respect to time and space.

- 1 Video
- 8 Hours
- 38 Problems

This is the continuation of the previous module. In this module you will see some more examples on analysing the time and space complexity.

- 1 Video
- 8 Hours
- 36 Problems

A search algorithm is any algorithm which solves the search problem, namely, to retrieve information stored within some data structure, or calculated in the search space of a problem domain. In this module, you will learn the working of the searching algorithms like, linear search and binary search. You will also analyse the complexities of the algorithm.

- 1 Video
- 8 Hours
- 38 Problems

A sorting algorithm is an algorithm that puts elements of a list in a certain order. The most frequently used orders are numerical order and lexicographical order. In this module, you will learn how the given data is sorted using the various sorting algorithms. You will also analyse the complexities of the algorithm.

- 3 Videos
- 5 Hours
- 52 Problems

Following a strategy to solve a problem will make the problem simple as well as reduce the complexity of the solution. In this module, you will learn the introduction to the five different design strategies.

- 5 Hours
- 41 Problems

Divide and conquer is an algorithm design paradigm based on multi-branched recursion. A divide and conquer algorithm works by recursively breaking down a data-set into two or more sub-data-sets, until these become simple enough to be solved directly . In this module you will learn how to solve problems using this strategy.

- 1 Video
- 6 Hours
- 78 Problems

This module the continuation of the previous module. In this module, you will learn and solve few more example problems about this strategy.

- 6 Hours
- 65 Problems

A greedy algorithm is an algorithmic paradigm that follows the problem solving heuristic of making the locally optimal choice at each stage with the intent of finding a global optimum. In many problems, a greedy strategy does not usually produce an optimal solution, but nonetheless a greedy heuristic may yield locally optimal solutions that approximate a globally optimal solution in a reasonable amount of time. In this module you will learn how to solve problems using this strategy.

- 5 Hours
- 46 Problems

This module the continuation of the previous module. In this module, you will learn and solve few more example problems about this strategy.

- 5 Hours
- 53 Problems

Dynamic programming refers to simplifying a complicated problem by breaking it down into simpler sub-problems in a recursive manner. In this module you will learn how to solve problems using this strategy.

- 1 Video
- 6 Hours
- 71 Problems

This module the continuation of the previous module. In this module, you will learn and solve few more example problems about this strategy.

- 6 Hours
- 58 Problems

Backtracking strategy is defined as a general algorithmic technique that considers searching every possible combination in order to solve an optimization problem. In this module you will learn how to solve problems using this strategy.

- 4 Hours
- 37 Problems

- 5 Hours
- 49 Problems

Branch and bound is an algorithm paradigm that basically relies on a combinatorial approach and is hence used for combinatorial optimization problems. For example, the knapsack problem. In this module you will learn how to solve problems using this strategy.

- 5 Hours
- 41 Problems

In this module, you will learn about solving various string based problems that are used to try out different methods to reduce the complexity with respect to time and space.

- 5 Hours
- 41 Problems

You can opt for the following courses once you complete your ongoing course

E-Box is a Technology Enabled Active Learning and

Assessment platform for technology and engineering

domains apart from the basic LMS components like

quizzes, assignments, lesson components.