DS and Algo Foundation
Basics of DS and Algo
Master the basics of Data Structures and Algorithms to solve complex problems efficiently
Students

## Course Overview

This comprehensive online course will help you excel in basic data structures and algorithms via premium video lectures designed by industry experts so that you can start solving real-world coding challenges efficiently. This is a basic level course designed for students who are facing difficulty in Data Structures and Algorithms.

This course will help you to gain an edge over others with strong roots in Data Structures and Algorithms for interviews of top product-based companies like Amazon, Microsoft, Uber etc. Recommended for:

• Anyone who wants to learn the Basics of Data Structures to start Competitive Programming or Preparation for on-campus/off-campus placements
• Programmers looking to replenish their fundamentals in Data Structures

## What You Will Learn

• Learn about the core fundamentals of Data Structures & Algorithms explained in a practical manner with utmost clarity

• Learn the  basic yet important topics of DSA like recursion, searching, sorting, hashing etc

• Also learn about the more advanced topics like Dynamic Programming, Backtracking, Graph etc

• Solve complex problems easily by learning the fundamental algorithmic techniques

## Course Features

• Track-based learning

• Premium Lecture videos by industry experts

• Internship Opportunities at GeeksforGeeks

• Course Completion Certificate trusted by top universities and companies

## Course Content

#### Analysis of Algorithm

• Analysis of Algorithm
• Order of Growth
• Asymptotic Notations
• Big O Notation
• Omega Notation
• Theta Notation
• Analysis of Common Loops
• Analysis of Recursion
• Space Complexity

#### Arrays

• Introduction to Arrays
• Array Types
• Operations on Arrays (Part 1)
• Operations on Arrays (Part 2)
• Largest Element
• Check if Sorted
• Second Largest Element
• Remove Duplicates from Sorted Array
• Move Zeros to End
• Reverse an Array
• Left Rotate an Array by One

#### Recursion

• Introduction to Recursion
• Applications of Recursion
• Recursion Ouput Practice(Part 1)
• Recursion Ouput Practice(Part 2)
• Print N to 1 Using Recursion
• Print 1 to N Using Recursion
• Tail Recursion
• Natural Number Sum using Recursion
• Writing Base Cases in Recursion
• Palindrome Check using Recursion
• Sum of Digits, Rod Cutting and Subsets
• Tower of Hanoi

#### Hashing

• Introduction to Hashing
• Hashing Application
• Hashing Functions
• Collision Handling
• Chaining
• Implementation of Chaining
• Double Hashing
• Unordered_set in C++ STL
• Unordered_map in C++ STL
• HashSet in Java
• HashMap in Java
• Count Distinct Elements
• Count of Frequency of array elements

#### String

• Introduction to String
• Strings in C++
• String in Java
• Palindrome Check
• Check for Anagram
• Leftmost Repeating Character
• Leftmost Non-repeating Element
• Overview of Pattern Searching
• Naive Pattern Searching
• Improved Naive Pattern Searching for Distinct
• Anagram Search
• Check if Strings are Rotations
• Rabin Karp Algorithm
• KMP Agorithm (Part 1 : Constructing LPS Array)
• KMP Agorithm (Part 2 : Complete Algorithm)
• Lexicographic Rank of a String

#### Searching

• Binary Search (Iterative)
• Binary Search (Recursive)
• Analysis of Binary Search
• Find Index of First Occurrence
• Find Index of Last Occurrence
• Count 1s in a Sorted Binary Array
• Square Root

## FAQs

1. Is there any number to contact for any query?
You may call us on our toll-free number: 1800 123 8622  or Drop us an email at geeks.classes@geeksforgeeks.org
2. Does the course include programming questions?
Yes, the course focuses on the basics of DS & Algo with a mix of theoretical lectures and programming questions.

3. Is this a language-specific course?
Yes, the course is only in C++ & Java.  In case you are not familiar with these languages, you may join one of the free courses, Fork CPP and Fork Java to best utilize this course.

4. What do I learn if I am a Python Programmer?
If you are a Python programmer, you get the following.
1) The theory part of videos, algorithms in videos.  Note video explanations of implementations are specific to C++ and Java only
2) Practice Questions will be in Python
It is recommended to prepare yourself with Fork Python if you are beginning with Python

5. How can I register for the course?
You need to sign up for the course. After signing up, you need to pay when the payment link opens.

6. What type of certificate will be offered in this program
Once the course is completed. You'll be getting a course completion certificate.

7. When can I make the payment for the course?
The payment link will be available on the course page.

8. Will the course content be available after the course end date?
Yes, the course content comes with lifetime validity.

9. Can I make the payment through PayPal?
Yes. Mail us with your details at geeks.classes@geeksforgeeks.org.

10. Is the Placement Preparation Course similar to this course?
No, the Placement Preparation Course is a revisional course, suitable for those who have already prepared for placements but are looking to revise their preparation. And this course helps you prepare Data Structures and Algorithms for placements from scratch. Here's your invitation code for the Placement Preparation Course: PPCDSPC1

## Course Registration

#### Upcoming Batches

Batch Date Type Register
DS & Algo Foundation Active Online Classes