This course will delve into the realm of computer science. You will learn how to analyse an algorithm theoretically and mathematically to make it more optimized. The run time analysis and cost measurement will be taught.


You will study and implement various algorithmic strategies such as divide and conquer, greedy method, dynamic programming, backtracking, branch and bound and different string matching algorithms.


This course will give you a strong hold over estimating and solving computational problems and also give you an insight into making efficient algorithms.



12 Jan 19 - 20 Apr 19

  • Sat: 6:30pm-9:30pm




What you'll learn?


Learn the basics of an algorithm and the different types of algorithm. You will also learn how to analyse an algorithm and measure its performance.
  • Algorithm Specification
  • Performance Analysis
  • Randomized Algorithms

Divide and Conquer

Divide and Conquer algorithm works by dividing a problem into simpler sub - problems and then solves them directly. 
  • General Method
  • Binary Search
  • Merge Sort
  • Quick Sort
  • Selection
  • Strassen's matrix multiplication

The Greedy method

This method works by selecting the optimal choice at each step.
  • General Method
  • Knapsack Problem
  • Job Sequencing With Deadlines
  • Minimum-Cost Spanning Trees
  • Optimal Storage on Tapes
  • Optimal Merge Patterns
  • Single-Source Shortest Path

Dynamic Programming

This technique breaks a complex problem into simpler sub – problems and then stores the solutions in a data structure for future use to get to the final solution.
  • General Method
  • Multistage Graphs
  • All-Pairs Shortest Paths
  • Single-Source Shortest Paths
  • Optimal Binary Serch Trees
  • 0/1 Knapsack
  • Reliability Design
  • Travelling Salesperson Problem


This type of algorithm builds a set of solutions and eliminates each member (“backtracks”) as soon as it determines that it cannot be a possible solution. 
  • General Method
  • 8-Queens Problem
  • Graph Coloring
  • Hamiltonian Cycles
  • Knapsack Problem

Branch and Bound

This algorithm estimates the lower and upper bounds of a branch of the search space, it is commonly used for solving NP-hard problems.
  • General Method
  • FIFO Branch-and-Bound
  • LC Branch-and-Bound
  • 0/1 Knapsack Problem
  • Travelling Salesperson

Internet Algorithm

In this section, you will learn different string and pattern matching algorithms used. Learn about  tree data structure, tries, which is used to store associative array.
  • Introduction
  • String and Pattern Matching Algorithm
  • Tries
  • Text Compression
  • Text Similarity Testing