
Define an algorithm as a sequence of unambiguous instructions that solves a problem. It must take input, output a result, terminate in finite time, and adhere to definiteness and effectiveness.
Learn how to specify algorithms using pseudocode convention that resembles C, including comments, variables, assignments, loops, conditionals, read/write I/O, and array handling.
Explore asymptotic notations to express how time and space complexity scale with input size, covering big O, little o, and big Omega for upper, lower, and tight bounds.
Explore the quicksort algorithm, a divide and conquer sorting method that uses a pivot to partition data, swaps, and recursively sorts subarrays to achieve a sorted sequence.
Explore how breadth-first search traverses a graph from a starting node by enqueueing unexplored neighbors and avoiding cycles until all vertices are visited.
learn how to identify articulation points in a connected component with a depth-first search and low values. explore constructing the dfs tree, back edges, and root and non-root conditions.
Explore how to compute the shortest paths from a single source to all vertices using Dijkstra's algorithm on weighted graphs.
Explore dynamic programming and the principle of optimality through a level-wise shortest-path example, comparing with greedy methods and showing how to build optimal solutions step by step.
Explore the travelling salesman problem: start at vertex 1, visit every vertex exactly once, return to 1, and minimize total cost using dynamic programming on a cost matrix.
Explore the 0/1 knapsack problem solved with lc branch and bound, using branching and bounding to maximize profit under capacity, with upper and lower bounds and an intelligent ranking function.
The Highlights of the course are
1.How to write algorithms with clear explanation.
2.Analysis of Algorithms which can be measured with Time and space complexities.
3.Methods like Divide and Conquer , Greedy method, Dynamic Programming,Backtracking and Branch and Bound are clearly explained with Applications of each method with an example and algorithm.
4. The tracing of algorithms are clearly explained line by line.