Data Structure & Algorithm
Get interview ready!
The course is designed to help you prepare for coding interviews and develop a solid foundation in Data Structures & Algorithms along with problem solving skills.
Topics We Cover
Through a hands-on, project-based approach, students learn by doing.
Introduction to programming
Types of languages. Memory management.
Introduction to Java
How Java works, setup installation, input and output, conditionals and loops, data types, and coding best practices.
Arrays and ArrayList
How arrays work in Java, memory management, input and output, ArrayList introduction.
Sorting
Insertion, selection, bubble, cyclic, merge, quick, count, radix, and heap sort.
Recursion
Introduction, how to master, flow of the program, tree building, tail recursion, sorting, string, array, pattern, subset questions.
Time and space complexity
Introduction, various cases, linear recurrence, divide-n-conquer recurrence, notations, solving recurrences, space complexity, NP-completeness.
Linked List
Introduction, singly, doubly, circular, fast and slow pointer, cycle detection, reversal of Linked List, Linked List with recursion.
Trees
Introduction to binary trees, binary search tress, DFS, BFS, AVL trees, segment trees.
Hashmaps
Introduction, theory, comparisons, limitations, map using Linked List, map using Hash, sorting, chaining, probing, Huffman-encoder.
Dynamic programming
Introduction, recursion, recursion + dp, iteration, iteration + space-optimized, complexity analysis, 0/1 Knapsack, subset questions, unbounded knapsack, subsequence questions, string dp.
Flow of program
Flowcharts, pattern questions, and pseudocode.
Functions / Methods
Introduction to functions, scoping, shadowing, functional arguments, function overloading.
Searching
Linear, binary, modified binary search.
Mathematics
Bitwise operators, range of data types, prime numbers, factors, modulo properties, number theory.
Backtracking
Introduction, Maze problems, N-queens, N-knights, sudoku solver.
Object-oriented programming
Introduction, classes, objects, this, properties, overloading, overriding, static, packages, access control, interfaces, abstract classes, annotations, singleton class, keywords, Object class, generics, exception handling, Vector class, Collections framework, lambda expressions, enums.
Stacks and Queues
Introduction, push efficient, pop efficient, queue using stack and vice versa, circular queue.
Heaps
Introduction, theory, priority queue, heapsort, two heaps method, k-way merge, top-k elements, interval problems.
Graph theory
Introduction, BFS, DFS, components, minimum spanning trees, Kruskal, Prims, Dijkstra’s shortest path, topological sort, Bellman ford, A* pathfinding.
Additional topics
Greedy algorithms, tries, sliding window, two-pointer, kadane’s algorithm, and more!
Ready For the FAANGM Interview!
There are no prerequisites, so you can jump right in and clear your coding rounds. You will be exposed to an in-depth explanation with a hands-on approach, custom implementations of various data structures using LeetCode with easy to hard problems to ensure that you learn the patterns needed to pass interview rounds.
FEATURES
Guidance
Expert career guidance on Open Source, internships, and jobs around the world.
Projects
Apply your knowledge by working on projects and contributing to open-source software.
Assignments
We provide assignments and questions to help you understand the concepts.
Notes
Get complete notes for all lectures so that you can focus on learning and practicing.
Doubt Support
A technical volunteer will always be available to answer your questions.
Structured Learning
Learning made simple. Quality is never compromised while covering the entire syllabus.
Frequently Asked Questions
Yes! We welcome everyone. Every step of our teaching process is designed to be easily understood by anyone. You don’t need to know anything about programming.
A technical volunteer will always be available to answer your questions. Also, we promote a culture of openness, sharing, and cooperation among our participants
Yes, you will get a training certificate after the successful completion of every course.
It does not require any prerequisites. All students interested in or wishing to pursue a career in computer science are welcome to enroll in our courses. Starting from zero, everything will move on to in-depth levels of specific technologies.