# Course details

Data Structure & Algorithm Fundamentals

## A brief summary

This course solely focuses on data structure and algorithm fundamentals. There are a lot of people both from CS and Non-CS background who do not have adequate understandings on data structures and algorithms. Data structures and algorithms are the most important topics to learn in order to become a successful software engineer or ace technical interviews.

If you know basic programming but want to learn DS&A, this course is for you!

## Prerequisite

Basic knowledge (i.e. loops, arrays, I/O etc) of at least one programming language.

## Course highlight

• Explanation of the core concepts of basic data structure and algorithms with practical examples.
• Detailed explanation on Complexity analysis with working examples (both time and memory).
• Introduction to Graph Theory, greedy & searching techniques, recursions, and lot more!

## What you will learn

A solid understanding of how a computer efficiently calculates and stores efficiently within a blink of your eye.

Ability to advance yourselves to dive into the world of Competitive Programming.

### 01

#### Complexity Analysis

1. Time Complexity Analysis i) Big-O Notation. ii) How to calculate time complexity of a function. 2. Memory Complexity Analysis i) Capacity of each data type variable and it's calculation. ii) How to calculate memory complexity of a piece of code. iii) Concepts of Heap Memory & Stack Memory.

### 02

#### Data Structures

1. Linked List i) Introduction, why we need it, how it works. ii) Implementation in C++ 2. Stack, Queue i) Introduction, why we need it, how it works. ii) Implementation in C++ with static array, dynamic array and linked list. 3. Single and Multidimensional arrays i) Introduction. ii) Conversion between various dimensional arrays into 1D arrays. iii) Application and necessity of arrays 4. Introduction to Graph Theory i) Graph modeling ii) Adjacency matrix and list

### 03

#### Algorithms

1. Sorting Algorithms (Bubble, Insertion etc) i) Introduction ii) Implementation in C++ 2. Searching Techniques (Binary Search) i) Introduction ii) Implementation in C++ 3. Greedy Techniques i) Introduction ii) Discussion on a few related problems. 4. Recursion i) Intro to recursion and backtracking ii) Relevant basic problem solving i.e. 8-queen, all permutations, fibonacci etc 5. Shortest Path i) Various graph traversing algorithms i.e. DFS, BFS ii) How to model a graph based on real life scenario and finding shortest path

### 04

#### Technical Assignments

There will be a set of technical assignments after completion of each module.

#### Next Batches

Batch No. Class Days Time Reg. Close Class Start
01 Mon, Tues 09:00 PM December 12, 2021 December 13, 2021