
Explore how flow charts and pseudocode guide problem solving, then see how a compiler translates C++ to binary, with compile-time and runtime errors, and install code blocks.
Install the Codeblocks ide on Windows, choosing the pre-installed compiler and completing the setup. Create a simple cpp file, write a basic program using iostream, and build and run.
Understand arrays by exploring zero-based indexing, memory contiguity, and storing multiple values with a single array. Learn initialization, printing with loops, and how arrays behave when partially filled.
Learn to sum array elements in C++ by inputting n, storing values in an array, and accumulating the total with sum += a[i] before printing the result.
Learn to find the largest element in an array by reading n elements, iterating through them, and updating a running maximum initialized to minus infinity.
Learn how to swap two numbers in c++ using a temp variable, the xor trick, or the built-in swap function, with before and after demonstrations.
Learn to print an array in reverse order by iterating from the last index (n-1) down to zero and printing each element, alongside a normal left-to-right print.
Learn to reverse an array in C++ using two pointers, swapping elements at the start and end, and printing the array before and after the reversal.
Identify segmentation fault and runtime error as outcomes of accessing memory outside array bounds. Examine examples like a[2000] or a[-1] and learn how maximum array sizes around 10^5–10^6 limit allocations.
Explore strings and one-dimensional character arrays in C++. Contrast with integer arrays, and learn input/output basics, including the null terminator and how strings print until termination.
Compute the length of a string stored in a character array by iterating until the null terminator. The length function returns an integer and prints four for the example Abcd.
Master cin.getline to safely read spaces by specifying the array name and max characters, with an optional delimiter (default newline) to control where input stops, avoiding overflow and memory errors.
Learn to reverse a string in a character array using a two-pointer approach in C++, swapping from both ends until start meets end, using length and handling the null terminator.
Learn how inbuilt c-style string functions in C++ operate on character arrays: length, compare, copy, copy first n characters, and concatenate using the C string header.
learn to print prefixes of a string in c++ using nested loops, with outer end and inner start, printing from index 0 to end to produce a, ab, abc, abcd.
Learn two dimensional arrays in c++, illustrated with tic tac toe and chess, including declaring, indexing, and row-wise and column-wise input and printing.
Learn how to initialize and pass 2d arrays (matrices) in C++, using rows and columns, including partial initialization with optional rows, zeros for missing elements, and printing the array.
Learn how 2d arrays are stored in memory using row major order, mapping i and j to a 1d index with i times c plus j.
Explore the string class as an inbuilt data type, safer than character arrays. Learn creating, modifying, and comparing strings using vectors, getline, substr, find, to_string, and string-to-int conversions.
Explore object oriented programming by defining classes as blueprints and objects as real world instances, with properties and functions demonstrated through student and product examples.
Explore creating objects in C++ with static and dynamic memory, access properties using dot and arrow operators, and manage visibility with public and private access modifiers.
Explore public and private access modifiers in C++, implement getters and setters to read and write private data, and access functions via dot or arrow notation.
Explore constructors in c++: default and parameterized constructors initialize object data members, show how access modifiers affect visibility, and demonstrate constructor overloading and object creation.
Explore constructors, parameterized and default, and master the this keyword to distinguish members from parameters, ensuring proper initialization and avoiding garbage values.
Learn how a copy constructor creates a copy of an existing object by copying its values, while default constructors, copy assignment operator, and destructors are automatically provided.
Explore the copy assignment operator, copy constructor, and destructor in C++, revealing how objects copy values and how memory is deallocated for static and dynamic objects.
Explore c++ constructors by creating student objects with default and parameterized constructors (row number; age and row), and compare copy constructor with copy assignment, including the s5 = s3 case.
Develop a fraction class in C++ with private numerator and denominator, a parameterized constructor, and public methods print and add; implement addition using lcm and gcd to simplify.
Explore a fraction class with private numerator and denominator, demonstrating how pass-by-reference and const references avoid copies in add and multiply operations, keeping inputs unchanged while simplifying results.
Create a complex number class with real and imaginary parts, a parameterized constructor, plus and multiply operations, and a print function to display as real plus iota imaginary.
Explore shallow copy and deep copy in a student class, showing how copying only the address creates shared state and how to copy the entire array with string copy.
Understand how built-in copy constructors create shallow copies with dynamic arrays, and implement a deep copy using a custom copy constructor while passing by reference to avoid recursion.
Learn how initialization lists initialize constant and reference data members in C++, avoid garbage values, and use constructors to assign per-object values with proper syntax.
Learn how constant functions preserve object state in a fraction class by marking getters as constant, allowing calls on constant objects while setters remain prohibited.
Explore static properties and static data members, their class-wide behavior, access them via the class name, and initialize them outside the class to share state across objects.
Overload the plus, multiply, and equal operators for a fraction class to enable f1 + f2, f1 * f2, and f1 == f2, returning new fractions and applying simplification.
Overload the pre-increment operator for a fraction class, illustrating unary behavior and nested usage. Explain returning by reference to avoid copies and ensure correct updates.
Overload post-increment for a fraction class, illustrate pre vs post behavior, return old value, and implement plus-equal (operator +=) with nesting rules and return by reference for chaining.
Build a dynamic array class in C++ that expands by doubling capacity, supports add and get operations, handles memory safely with deep copy, and demonstrates memory management.
Explore C++ vectors as built-in dynamic arrays that resize by doubling capacity, using pushback for inserts, at for safe access, and size and capacity for efficient iteration and sorting.
Traverse a matrix in spiral order using four pointers (start row, end row, start column, end column) and a count, returning a vector of elements with O(mn) time.
Learn how selection sort sorts data in ascending order by repeatedly selecting the smallest element to the right of the current position, swapping via index tracking and implementing in C++.
Learn the bubble sort algorithm by comparing adjacent elements, swapping to push the largest values to the end, and analyzing its n squared time complexity with a practical C++ example.
Implement an optimized bubble sort that uses a flag to detect no swaps and break early, so already sorted arrays take n steps, while unsorted arrays take n^2 steps.
Learn how the c++ standard template library's inbuilt sort sorts arrays with sort(a, a+n) after including the algorithm header. Bits/stdc++.h serves as a master header including many headers.
Learn to implement linear search in an array with a key, returning the index or not found, using a C++ function and a left-to-right scan achieving O(n).
Explain the limitations of linear search, which takes n steps regardless of sorted or unsorted. Show that binary search provides log n steps for sorted arrays.
Master binary search for sorted arrays by using start, end, and mid to halve the search space, while recognizing that unsorted arrays require linear search.
Learn to implement binary search in C++: initialize start and end, compute mid safely, compare with key, adjust pointers, return index or -1; input must be sorted.
Brand new course ready for the 2026 hiring season! Join a course taught by industry experts that have actually worked both at top tech firms. Graduates of this course are now working at Google, Tesla, Amazon, Apple, IBM, JP Morgan, Facebook + other top tech companies.
This is the ultimate resource to prepare you for coding interviews. Everything you need in one place!
WHAT OUR LEARNERS ARE SAYING:
5 STARS - This was an amazing course. I was a beginner in data structures and algorithms, but I have learned so much that I would consider myself intermediate-advanced. For anyone looking to deepen their understanding of these data structures, their implementation, or their real-world use, I completely recommend buying this course.
5 STARS - This is the best course on data structure compare to all data structure course .all the topic of data structure has been completed in this course .if anyone want to learn data structure then you can go for it. thank you sir for making this course on udemy
5 STARS - I liked this course very much! It clears out your basics quite well and is does totally what Harsh and Ankit claim they'll do. I would recommend this to everyone who wants to learn Data Structures and Algorithms, especially if you had a phobia for coding like I did. I now love coding! All thanks to them.
5 STARS - This course is really amazing. instructor is going beyond and beyond each and every thing was my beyond expectations. really mastery course it is.
5 STARS - Hands-on course. The teaching style is excellent. If you are looking for a DSA course and a beginner then your search end here. Just go for it guys. Many thanks to the instructor for creating this course
5 STARS - This is the best computer science course I've taken. If you need to learn C++ and pass your technical interviews, this is the course to take. The explanations in the videos are extremely thorough, and I have reached out to the instructor several times on various questions, and he's always quick to respond and very helpful. In my experience, every MOOC that said its instructors would actively help you with problems lied, EXCEPT FOR THIS COURSE. TAKE THIS COURSE!
5 STARS - This is the BEST COURSE on C++ Data Structures & Algorithms. The Instructors are the BEST. They Draw Everything out and Then EXPLAIN THE CONCEPTS VERY WELL & then CODE it. Also I Love Doing the LEETCODE ProblemSets. Absolutely Fantastic. Above my Expectations. I am taking this course for COMPETITIVE PROGRAMMING. It is the BEST COURSE. Thank you very much Ankit and Harsh. You guys are the BEST!
Course Highlights
Quality Problems with hands-on code
Intuitive & Detailed Explanations
HD Videos
Deep focus on Problem Solving
Broaden your mindset
STL Powerful features
250+ HD Lectures
200+ quality Problems
60+ hours of interactive content
Code Evaluation Exercises
Doubt Solving within 6 hours
Practice Exercises
Real Time Feedback
Lifetime Access
Industry vetted curriculum
Completion Certificate
Overview of Topics
Arrays, Strings, Vectors, Binary Search
Stacks, Queues, Linked Lists
Binary Trees, BSTs, Heaps
Hashing, Pattern Matching, Tries
Brute force, Recursion
Sliding Window, Two Pointer
Sorting & Searching, Greedy
Graphs Algorithms, Dynamic Programming
So you want to learn and master Data Structure and Algorithm , I have done it. I have cracked interviews of top product based companies and landed job offers from many companies (Amazon, Samsung , Microsoft, Flipkart ...)
This course is totally designed, with interative lectures, good quality problems, and is deeply focussed on problem solving. If you want to learn breath & depth of topics, this course is for you.
So i have created this course keeping in mind university syllabus and also to make you ready to get those valuable internships and placements.
You will top your university exams and will become interview ready at the same time.
I know how professors teach in colleges , they just discuss theory , but hey I am not a professor instead a bro. I will teach you things which really matter . Also i have shared many tips and tricks in the course .
So what are you waiting for ??
Master Data Structure and Algorithms , top you university exam and get those valuable internships and placements
Still have doubt , see the course content , no one is teaching you variation of binary search , every other instructor will teach you standard binary search. I am also teaching Dynamic Programming which is difficult to teach and other instructors are not teaching this but its a very important topic and you must know it.
We are solving 30+ problems on Recursion ,
Note : This course is 100% practical
My approach is very simple : discuss the relevant theory and then solve lots of problems . I teach concepts by solving lots of problems and you should be ready to solve lots of problems as Assignments , Quizzes etc
Every Data Structure is discussed, analysed and implemented with a Practical line-by-line coding.
Source code for all Programs is available for you to download
With this complete course, you will become an expert in the core fundamentals of programming, Data Structures, Algorithms and its functioning with one of the most popular programming languages,C and C++. The involvement of the practical technique of problem-solving will give learners a better understanding of the concepts of the course. Learn to design efficient algorithms and become ready for future best jobs in the industry.
As if this was not enough , I have shared tips and tricks on how to become good in competitive programming ( yes i have did CP in college)
Source code for all Programs is available for you to download
Sign up today!