Approved Training Partner

RELATED RECENT PLACEMENTS

Rohit Mali

William O'Neil India

NMIMS MUMBAI

Dhiraj Satghare

RD Civil Solution

Acharya Shrimannarayan Polytechnic

Namrata Rao

Piaggio & C. S.p.A.

Rajeev Gandhi College of Engg and Research Institute

Siddhi Parab

C.C Engineers

lokmanya tilak college of engineering

Anil Katarkar

3D engineering

NATIONAL INSTITUTE OF TECHNOLOGY

Bhavesh Kumbhare

Dar Al-Handasah Engineering company

Rashtrasant Tukadoji Maharaj Nagpur University

Akash Bhadkumbe

XS CAD

Dr. D Y Patil College of Engineering & Innovation, Varale

Madhura Joshi

NEILSOFT LIMITED

Government Polytechnic Ratnagiri

This course is full of best-in-class content by leading faculty and industry experts in the form of videos and projects

- This course is a step-by-step description of the basic and Advanced topics of Data Structures and Algorithms along with code implementation and problem solving sessions
- This course will help in developing the necessary problem-solving coding skills, for cracking coding interviews of all software companies
- 200+ hours of coding for a wide range of problems
- Learn how scalable programs are built
- Exposure on what top tech companies expect from programmers

On a daily basis we talk to companies in the likes of Tata Elxsi and Mahindra to fine tune our curriculum.

Week - 01 Introduction

A data structure is a named location that can be used to store and organise data. An algorithm is a collection of steps to solve a particular problem. Data structures provide a means to manage large amounts of data efficiently.

- In the first week of this course, you will learn:

- Stack memory vs heap memory in Java
- Physical vs logical data structure
- Abstract data types and data structures
- Complexity analysis
- Asymptotic analysis, comparison of functions, recurrence relations

- Time complexity
- Space complexity
- Master theorem
- Amortized analysis
- Iteration Vs recursion

- Recursion - Factorial, Fibonacci, finding nCr, tower of Hanoi problem.

Week - 02 Arrays, Strings, and Lists

Arrays are used to store multiple values in a single variable, instead of declaring separate variables for each value. A string is a sequence of characters like - "hello".

- In this session, we will learn about:

- Arrays

- Static arrays
- Dynamic arrays
- 2D arrays, row-major and column-major mapping, matrices
- Strings

- LinkedList

- Singly LinkedList and its operations
- Doubly LinkedList and its operations
- Circular LinkedList and its operation

- Arrays

Week - 03 Stacks and Queues

The stack is a linear data structure that is used to store a collection of objects. It is based on Last-In-First-Out (LIFO).

- In this session, we will be discussing about:

- Stacks

- Implementations- using arrays, using linked lists
- Operation
- Applications

- Queues

- Implementations- using arrays, using a LinkedList, using two stack
- Circular queues
- Priority queues

- Stacks

Week - 04 Trees

A tree is a non-linear data structure where data objects are organised in terms of hierarchical relationships. In this week's session, we’ll be discussing them one by one.

- In this week, we will discuss about
- Trees.

- Binary trees, their representations
- Pre-order, In-order, post-order traversal
- Binary search trees
- AVL trees

- Trees.

Week - 05 Heaps and Tries

Heap and Trie are special cases of trees. A heap is a special tree-based data structure in which the tree is a complete binary trees.

- In the session, we will discuss about
- How to solve the longest word in the dictionary problem using tries.
- Heaps

- Min Heap
- Max Heap
- Find K largest (or smallest) elements in the array

- Tries

- Longest Word in Dictionary Problem

Week - 06 Graphs & Algorithms

A graph is a data structure that consists of a finite set of vertices, also called nodes and a finite set of ordered pairs of the form (u, v) called edges.

- In this week's session, We will be discussing different types of algorithms, like:
- Graphs

- Types of graphs
- Breadth-first search, depth-first search
- Topological sort
- Shortest path problem

- Algorithms

- Dijkstra's algorithm
- Bellman–Ford algorithm

- Minimum spanning tree problem
- Prim's algorithm

- Kruskal's algorithm

Week - 07 Sorting

- In this week, we will discuss about
- Sorting-

- Types of sorting techniques

- Bubble sort
- Insertion sort
- Selection sort
- Quick sort
- Merge sort
- Heap sort
- Count sort
- Bucket sort
- Radix sort
- Shell sort

- Types of sorting techniques

- Sorting-

Week - 08 Searching and Hashing

Searching is probably one of the most common actions performed in a regular business application. This involves fetching data stored in data structures like arrays, lists, and maps. Hashing is the process of converting a given key into another value. A hash function is used to generate the new value according to a mathematical algorithm.

- During this week we will be discussing the following:

- Searching

- Linear search
- Binary search

- Linear search
- Hashing

- Hash function
- Collision handling

- Hash function
- Chaining
- Open addressing

- Linear probing, primary clustering
- Quadratic probing, secondary clustering

- Linear probing, primary clustering
- Double hashing

- Searching

Week - 09 Greedy Algorithms

A greedy algorithm is a simple, intuitive algorithm that is used in optimization problems.

- The topics discussed in this session will be-

- The strategy of greedy algorithms
- Elements of greedy algorithms
- Advantages of greedy algorithms
- Disadvantages of greedy algorithms
- Applications of greedy algorithms
- Knapsack problem
- Job sequencing with deadlines
- Huffman coding

Week - 10 Divide and Conquer

The divide and conquer approach is pretty straightforward, the problem at hand is divided into smaller subproblems and then each problem is solved independently. As we keep dividing the subproblems into even smaller problems, we eventually reach a stage where no more division is possible.

- In the session this week, we will discuss:

- The strategy of divide and conquer techniques
- Advantages of divide and conquer techniques
- Disadvantages of divide and conquer techniques
- The master theorem of divide and conquer techniques
- Applications of divide and conquer techniques
- Find the median of two sorted arrays

Week - 11 Backtracking

Backtracking is an algorithmic-technique for solving problems recursively by trying to build a solution incrementally.

- We’ll discuss two methods used to backtrack.

Backtracking-

- Brute force approach
- N queens problem

- After backtracking, we will be studying how Java 8 collections framework is implemented. We will be covering the following,

- Set
- List
- Queue
- PriorityQueue
- Map
- HashSet
- TreeSet
- ArrayList
- LinkedList
- Vector
- Dictionary
- Stack

Week - 12 Dynamic Programming

Dynamic Programming is also an algorithmic technique for solving optimization of problems. It is done by breaking the problem down into simpler subproblems, and utilizing the fact that the optimal solution to the overall problem depends upon the optimal solution to its subproblems.

- During this session, we will be covering the following:

- Dynamic programming-

- The strategy of dynamic programming
- Properties of dynamic programming
- Approaches of dynamic programming
- 0/1 knapsack
- Travelling salesman problem
- Floyd Warshall

- In the end, we will conclude and summarize the course by having a brief discussion on
- Greedy vs Divide & Conquer vs Dynamic
- Programming examples

- Dynamic programming-

Our courses have been designed by industry experts to help students achieve their dream careers

Our projects are designed by experts in the industry to reflect industry standards. By working through our projects, Learners will gain a practical understanding of what they will take on at a larger-scale in the industry. In total, there are **1 Projects** that are available in this program.

Optimize and Solve problems with given restrictions

As a part of this coursework, the students will be solving a set of 20 problems in an optimized way with the given restrictions of time and space complexity.

Our courses have been designed by industry experts to help students achieve their dream careers

Skill-Lync has received honest feedback from our learners around the globe.

4.8

Our courses are designed by leading academicians and experienced industry professionals.

1 industry expert

Our instructors are industry experts along with a passion to teach.

10 years in the experience range

Instructors with 10 years extensive industry experience.

Areas of expertise

- Full Stack development

Hyderabad

Delhi

Mumbai

Bangalore

Chennai

Please fill in your number & an expert from our team will call you shortly.