Introduction to Algorithms and Data structures in C++ (Udemy.com)
A step-by-step guide with solved problems. I'm teaching visually with lots of examples.
Created by: Andrei Margeloiu
Last updated August 2018
Our take
Based on the ratings of 7,006 students, a sample of their written reviews and the syllabus, as the course stood in August 2018. No course pays to be reviewed.
This is a short, free Udemy course from Andrei Margeloiu, a competitive programmer who teaches with drawings and worked examples rather than long code walkthroughs. It runs about 3 hours across 39 lectures in five sections, and most of that time sits in one section on building foundations: complexity, binary search, and how to approach a problem. A later update added dynamic programming, the Fibonacci sequence and the 0/1 knapsack problem. It suits people who already know basic C or C++ syntax and want a gentle first pass at algorithmic thinking before committing to something bigger.
Reviewers like the teaching. Several say Andrei explains hard ideas simply and that the binary search lectures changed how they attack problems. The complaint that comes up again and again is scope. The title promises data structures, but trees, graphs, hashing and maps never appear, and a few students felt let down on that point. Others wanted more worked examples instead of being told to figure a problem out alone, and one found a small indexing error in the binary search code. The Q&A is reported as unanswered, and the last update was in 2018, so do not count on support from the instructor.
For a free course with a 4.4 rating from about 7,000 reviews and roughly 145,000 students, that is a fair trade. Treat it as a warm-up rather than a full curriculum. The bigger courses it sits beside, including Mastering Data Structures & Algorithms using C and C++, are where to look for the structures missing here. This one is worth an evening or two if a long commitment feels like too much right now, and it costs nothing to find out whether algorithmic thinking clicks for you.
Pros
- Free, and short enough to finish in a weekend: 39 lectures over about 3 hours
- Visual, drawn-out explanations of binary search and time complexity that reviewers say finally made things click
- Later update added dynamic programming, Fibonacci and the 0/1 knapsack problem
- A couple of quizzes keep it active; students say the small modules are easy to digest
Cons
- Almost no data structures: trees, graphs, hashing and maps are missing despite the title
- Last updated in 2018 and reviewers report forum questions go unanswered
- Later lectures stop giving worked code and tell students to figure it out alone
The instructor explained everything in a very understandable manner. Some techniques are very good and he taught really well. But the course didn't include much information about Data Structures.
Beginner level is fair, but the requirements ask for basic C or C++ syntax first; this is not a first programming course.
What you will learn
- Deeply understand basic Algorithms & Data Structures concepts
- Apply Algorithms & Data structures to new problems
- Analyse algorithms efficiency
- Find efficient algorithms
- Solve algorithmic problems!
- Learn more advanced topics
Course content
5 sections · 39 lectures · 3.3 hours of video 2 quizzes, 6 articles
- 1Introduction 1 free preview2 lectures · 4 min
- 2Getting started2 lectures · 7 min
- 3Building a strong foundation 6 free previews29 lectures · 2 quizzes · 2.2 hours
- 4Dynamic programming 1 free preview4 lectures · 38 min
- 5Becoming a PRO2 lectures · 13 min
Who it is for
The instructor says it suits
- You, if you don't know where to start.
- You, if you watched many YouTube videos without understanding!
- You, if you want to learn Algorithms & Data Structures fast!
- You, if you want to solve algorithmic problems!
What you need before you start
- Desire to learn
- The basic syntax of C or C++
Course Description
***Big update - Dynamic programming***
- Fibonacci sequence
- Dynamic programming
- How to spot recurrence relations?
- 0/1 Knapsack problem
- Stack
- Check parenthesis expression
- Queue
"I learned a lot of things from this course. The GOLD trick was awesome." Arpan P.
"I started thinking about problems in a more efficient way..." Mokshagna S.
"It's deep, rich in information, consistent and dense" Laurentiu M.
"It's a very good course, it focuses on building your concept." Saransh S.
"Awesome, it's just awesome" Yazan R.
I'm a competitive programmer, World Finalist in Google HashCode algorithmic challenge, and a 3x Gold Medalist in the Computing Olympiad C/C++. You will learn fundamentals Algorithms & Data structures fast and the knowledge will resist because I teach you using visual examples.
You will get my advice every time you need it! Just message me.
If you know the basics of C++, this course suits you perfectly !
I've designed this course to take you down a guided learning path. You will find some GOLD tricks sprinkled throughout the course that will help you become an algorithmic ninja!
What can you take from me ?
I have spent 5 years of my life learning this topic by myself. You have the possibility to take my knowledge for granted! I'm teaching in the way I learnt: with illustration and examples.
My Promise to You
Algorithms and Data structures brought me success and immense satisfaction. I created this course to share my knowledge with you because I love this topic and I promise to teach you with enthusiasm! If you need support, I will be just a message away.
My Approach
Practice, practice and more practice. After each lecture, I will guide you to solve little problems! The most important thing you can obtain from this course is to think like a problem solver!
Instructor Details
- 4.4 Rating
7,006 Reviews
Andrei Margeloiu
In 2017 he ranked 1st out of UK universities in the Google HashCode worldwide algorithmic competition and participated in the World Finals at Google Paris HQ.
Andrei is a competitive programmer who has learnt C++ from scratch, and in the first year, he won the prestigious Gold Medal in the Computing Olympiad!
In the next years, he has become one of the most award-winning students in his generation, winning a total of 3 Gold Medals out of 4 possible! He has a deep understanding of C++ principles, algorithms and data structures. He has solved more than 1000 competitive problems, and he has even built a program that simulates an online shop deliveries using drones!
Andrei has helped more than 7000 students to learn Algorithms & Data structures from scratch! He loves to explain in the way he wished he has been taught! As he was thinking of becoming a teacher, he dives deep to the core principles, crack hard problems in small pieces that can be understood quickly and finally explain the logic behind the program. By joining him, you will not only become fluent in C++, but you will develop a real programmer logic and be able to switch rapidly to other programming languages!
Now, Andrei is studying Computer Science at the prestigious University College London to dive further into this amazing field!
More Data Structures and Algorithms courses
JavaScript Data Structures & Algorithms + LEETCODE Exercises (2026)
4.9 (4,131 Reviews)
Provider: Udemy
Time: 9.6h
$119.99
Data Structures & Algorithms: Coding Interview Masterclass (2026)
4.8 (15,900 Reviews)
Provider: Udemy
Time: 10.8h
$99.99
Master the Coding Interview: Big Tech (FAANG) Interviews (2026)
4.8 (6,000 Reviews)
Provider: Udemy
Time: 36.8h
$109.99
Mastering critical SKILLS in Algorithms using C++: Part 1 (2023)
4.8 (598 Reviews)
Provider: Udemy
Time: 18.9h
$84.99
Reviews
By Vrushali Manka on 8/7/2020
Absolutely loved this course. I started this course as a beginner with no C++ background. After finishing this course, I have: 1. A basic idea of how to write C++ programs for interview-level coding challenges. 2. A thorough idea of implementing algorithms with reduced computational complexity. Absolutely loved how binary search programs (majority element, # occurrences) were explained. Additionally, the final lecture (Finding a sum) neatly ties up how to decide/ select/ analyze the correct algorithms to be used in coding challenges. Overall, I now feel that I have a new set of tools to tackle C++ coding challenges.
By Joy Boles on 6/22/2020
Yes it was a good match for me. It not only teached me algorithms complexity but it also helped me how to think when solving a problem. It teached me common approaches for solving problems, most importantly binary search. I was familiar with the scope of a variable and the Fibonacci sequence but I didn't know when to use them. Thank you very much for your efforts.
By V Sri Chakra Kumar on 7/21/2019
The course content enables one to get a good start in understanding Algorithms & Data Structures. Andrei's approach towards time complexity & explanation of topics throughout the course is appreciable. I'd recommend this course for beginners to get the knack of Algorithmic thinking. In my view, more content over various algorithms would have made this course complete.
By Gopi Krishnan S on 5/1/2019
A very nice introduction to the basics of algorithms, enough to get the learner started.I loved how Andrei connected the Fibonacci sequence with nature. Nature is Mathematical, whether one realizes it or not and it's inspiring to see it being connected to Programming which too is Mathematical. This course however does not cover more complex routines, like merge sort etc but I think the course only aimed to give a high level overview. Overall Andrei is a great instructor.
By Shizhuo Liu on 2/1/2019
This is a great introductory guide to competitive programming and coding interviews. Andrei goes straight to the point and explains the concepts very clearly. For a free course, this is absolutely worth your time. It would be even better if there were more videos covering even more topics, as well as more exercises to solidify our understanding.
By Cory Johnson on 10/10/2018
The subjects covered halfway through talk about problems and how to solve them with faster techniques while also looking at how to measure how fast it works. These problems do help to build good practice, but I would appreciate a conversation about more tricks C++ has and some habits to build while coding in C++.
By Changzheng Rao on 8/17/2018
Andrei is cool! He has done a very good job in explaining the subjects. The topics are very useful. Course illustrations are straight to the point and no extra wordings. I would recommend Andrei to find some better illustration tools to help him illustrate and explain. Sometimes it took a little while to figure the numbers or alphas in his hand-writing. But this is not a big deal! Way to go, Andrei!
By Shaleen Mundra on 8/13/2018
it is a good match and i am obediently following whatever the mentor says.. like write this code on your own and i write it.. till now its good and topics were basic. I would like to see advanced topics coming up and making me uncomfortable because i want to train hard and best. Thank you for the amazing lectures.
By Din Nguyen on 2/16/2018
Some basic examples provided of codes at first but then Andrei stops providing additional code examples and tells you to figure it out on your own. At least do 1 example for each problem or theory would be much better to understand how to do it. However Andrei is enthusiastic and easy to understand but needs to provide more details/examples and how to do so.
By Venkatesh Bharadwaj S on 12/11/2017
The course was really useful. I was able to conceptually understand the various algorithms, especially Gold trick. Knapsack problem's explanation was great, though it was difficult. But, I also feel that, there could've been more depth in the course. I sense that algorithms haven't been fully explored. Anyways, it was a good start to a beginner like me.
Quality Score
No CourseDuck member has rated this course yet. Taken it? Give each part a thumbs up or down.
Overall Score : 88 / 100





