Chevron Left
Back to Algorithmic Toolbox

Learner Reviews & Feedback for Algorithmic Toolbox by University of California San Diego

9,492 ratings
2,017 reviews

About the Course

The course covers basic algorithmic techniques and ideas for computational problems arising frequently in practical applications: sorting and searching, divide and conquer, greedy algorithms, dynamic programming. We will learn a lot of theory: how to sort data and how it helps for searching; how to break a large problem into pieces and solve them recursively; when it makes sense to proceed greedily; how dynamic programming is used in genomic studies. You will practice solving computational problems, designing new algorithms, and implementing solutions efficiently (so that they run in less than a second)....

Top reviews


Jan 20, 2017

I liked the fact that the algorithms are not just the introductory searching and sorting algorithms. The assignments are fairly difficult (I have decent scripting experience), but not impossibly so.


Sep 29, 2017

good course, I like the fact you can use a lot of languages for you programming exercises, the content is really helpful, I would like to have more indications from the grading system to save time.

Filter by:

1 - 25 of 1,943 Reviews for Algorithmic Toolbox

By Greg G

Apr 25, 2019

I have a Mechatronics MSc and now I'm transitioning to CS after starting to work as a software developer. Even with an engineering background, this course was challenging: you need to think hard when designing algorithms, then precisely design and test a solution. (Stress) testing is a concept that is frequently used in everyday software development, too.

For some assignments, you'll find the pseudocode in the slides so those need less brain power to implement but for others, you'll have to come up with your own original solution. This requires time and research. It's possible to ask others in the forum or Google around for hints, and most assignments can be solved in multiple ways (e.g. I solved several of the dynamic programming assignments with memoized recursive functions). You won't find many hints from the teachers, though since that would spoil the learning part here - the essence of the course is not in the slides but in solving the assignments on your own.

Upsides of the course are the automatic grading system, the diversity of the assignments and the quality of the mathematical content and the slides.

Downsides of the course are the sometimes bad accent of the teachers - this could be eased with more accuraate captioning for the videos -, and the clumsiness of downloading slides (they are not available in one package, and trust me, you're going to use them a lot!)

Prerequisites for this course: you will need linear algebra knowledge to know about e.g. geometrical series or limit values, and you will need to know how mathematical proofs work. This is all advanced high school or 1st semester college material, so nothing special. Fortunately the teachers always point to extra links if you're in trouble.

Also, you'll need working knowledge for 1 programming language. Fortunately for many languages, you won't need to care about I/O, it's already in the starter files. I learned Python just for fun, during this course for example. All that is needed is basic control statements (loops-if), arrays and functions, nothing more.

Tips: 1. Don't give up! 2. You don't need to solve all the assignments, the ones after the minimum level are usually more advanced. 3. When in trouble, stress test if you can, it helps a lot. 4. If you're confident, you can 'make a run for it' and submit your file - you can submit as many times as you want.

By Mayukh S

Feb 15, 2019

This is the best and the toughest course I've ever come across. I'm definitely a better programmer now. It completely changes the way you analyze the problem. Totally awesome.

By Tom A

Dec 23, 2018

Aren't we paying for mentors to respond to posts in the discussions? I don't need to pay you monthly to be ignored while I struggle to learn on my own.


Feb 10, 2019

The course is perfectly designed. The perfect start for those who start with data structures and algorithms. The Dynamic programming was a little bit tough but overall course is perfectly designed

By Josh F

Apr 25, 2019

Opted for 5 over 4. Not a perfect course but damn close: Assuming 'basic knowledge' one of the languages suggested should also have as a pre-requisite 'introductory computer science' since having an ability to code in say python at a basic level doesn't necessarily mean you understand anything about file and bitstream IO, or other useful abstractions that will make this course a wee bit more interesting.

Anyone who doesn't have a strong grasp of CS principles shouldn't be dissuaded however, it just means that your learning curve will be steeper. The trick is digging your heels in and researching the problems, sticking to your guns and hammering out even the most ugly of code until you have a correct solution... AND THEN trying to make the thing faster. You will get faster at writing our your plan, faster at implementing, and learn to read code line by line to understand what is happen beneath the abstraction.

I'd also urge people to avoid using built-in functionality of your language to solve a lot of these problems, ie. in the Majority Element problem, you *could* just use python's built-in counter to count instances for you but by doing that, do you really understand what is happening beneath the hood? Do you really understand what the output of that abstraction is doing? Probably not. So do it the 'by-hand' way and then take advantage of the built-ins when you rewrite the code for your own use or to put on your repo.

All in all, a great 'trial by fire' course if you're a novice, and if you're not a novice, it will help make you a better programmer. For sure.

By Satesh P

Apr 21, 2018

It was an awesome first week. Great second week. From the third week I couldn't understand the concept being taught. It was hard to understand the professor and follow along. The terminology being used is advanced and it was too hard for me to pay for the course and then have to do my own research to catch up.

By Mohit S

Aug 07, 2017

It is very difficult to understand what the hell some of the lecturers speak as they eat up half of the words they speak. Also the transcript of the video shows incorrect words. Have to repeat each damn video a gazillion times to understand

By Dheepak J

Mar 14, 2019

Truly amazing course in which the instructors have the knack of explaining complex things very easily so as to be understood by a learner at the beginner level or at the intermediate level. I am so lucky to have completed all the assignments that were posted to me week on week and come to a very thorough understanding of the algorithmic tools and techniques... Well done San Diego team for your effort. Continue empowering the algorithmic knowledge of the world wide software community.

By Sandhya G

Jan 20, 2017

I liked the fact that the algorithms are not just the introductory searching and sorting algorithms. The assignments are fairly difficult (I have decent scripting experience), but not impossibly so.

By mugnaio

Sep 29, 2017

good course, I like the fact you can use a lot of languages for you programming exercises, the content is really helpful, I would like to have more indications from the grading system to save time.

By Anoubhav A

Sep 11, 2018

I have taken many courses on Coursera. This was hands down the most challenging, intellectually stimulating, painstaking and all in all fun course. The number and quality of problems in the assignments were much better compared to any other course. I have learnt alot from this course in a span of few weeks. I can't wait to get started with the second course on Data Structures offered by them!!

By 江祖榮

Jul 04, 2019

I learn a lot of solid programming/debugging skill and algorithm frameworks such as complexity analysis,

divide-and-conquer, greedy, dynamic programming, top-down recursive with memorization

as well as stress test, and random test to ensure output correctness and corner case handling.

To be honest, this course is really challenging but the outcome of progress is sweet and worthy.

By Do H L

Apr 04, 2016

I finished the first session of Master Algorithmic Programming Techniques, the Algorithmic Toolbox course. This is an amazing course. To review why this course (and series) is awesome:

1) 25 + programming assignments, ranging from easy to advanced.

2) Unlike many other CS courses, this course allows multiple programming languages. You have choices of C C++, Java, Python2, Python3. They may add more to the list :).

3) Super active forum, the learners come here to debate approaches and share knowledge a lot. There were so many times I'm convinced my algorithm can't be optimized anymore, then another guy came in with another genius idea.

4) Plus, the instructor, Mr. Alex S. Kulikov is a super nice guy, he made 300+ forum posts in the first session alone, to guide learners thoroughly.Comprehensive grader: grades you on correctness, time use, memory use. You have no choice but to optimize all 3 aspects to pass.

This course has premium access. However, both the quality and quantity are well worth the price. You can read other learners' comments and many agree with this.

By Kyle C

Jun 26, 2018

This was a pretty great first into to algorithms. Took me from essentially no formal experience to feeling pretty confident about where I go from here (CLRS, cracking the coding interview, etc). The only feedback I have for the instructors are: some of the lecturers don't have good english and it borders on impacting the comprehensibility of the course. Usually the subtitles fill in the gaps -- but in the latter half of the course these are often wrong as well. Fixing these would be a huge help! Thanks for creating such a useful resource.

By Maxim B

Mar 06, 2018

Cool course. Thank you! One suggestion about your book (Learning Algorithms Through Programming and Puzzle Solving): could you add some theory which would serve as a brief reminder before problems?

By Nguyen T C D

Jul 01, 2019

The material is quite really well-prepared and lecture is really understandable. Highly recommend this course for whom want to consolidate Algorithm and Data structure knowledge

By Roger T

Jun 09, 2016

Excellent coverage of algorithmic techniques in this course, with very accessible introductions to such fundamental topics as the Master Method, greedy algorithm design, and dynamic programming. This class hits the sweet spot for people who find Tim Roughgarden's Analysis and Design of Algorithms course too intense and hand-wavy, but who still want mathematically-sound, proof-based discussion of algorithmic techniques. (Listen to Roughgarden's drive-by treatment of Karatsuba's algorithm in his first week of lectures, and you will appreciate Neil Rhodes' coverage of the same algorithm all the more.) You get an introduction to a lot of "greatest hits" from Computer Science, but at a level where you come away understanding the technique. The problem sets start off with fairly easy exercises, just enough to reinforce your understanding, and progress up to exercises that will prove challenging indeed to newcomers. You will get a lot out of careful study of this course. I look forward to continuing in this specialization.


Nov 10, 2018

Splendid! The course material is rich, the teachers explain very well, in great detail and the exercises are pretty challenging, not to mention the set of compatible programming language one can use is very large. I loved it!

I would recommend this course to anyone serious about learning algorithm analysis and design, this is a great place either to get started or to enhance your current capabilities.

By Anya G

Aug 06, 2019

Thanks for the course, it was instructive! I like that some problems require implementing algorithms discussed in lectures, while others are quite challenging and are very satisfying to solve :)

By Rahul s

Dec 23, 2018

This course is just awesome and outstanding in every term. Teachers are very good at explaining even the toughest of problems and really helped throughout the course, i enjoyed and leaned a lot.

By Anuj G

Feb 19, 2018

best course for clearing basics of algorithms as well as learning by doing and blow your mind by thinking hard from different prospectives to get desired solutions of programming assignments ...

By Putcha L N R

Jul 05, 2019

Quite an engaging course to be honest!! Definitely recommend the course for beginners as well as people looking for brushing up of important paradigms.

By Satyam K

Feb 09, 2019

Crisp course, and challenging assignments make sure you memorize all the concepts learned. Great work by all the instructors!

By Aditya T

Mar 12, 2019

I have found this course to be very well explained and It covers wide range of topics in design and analysis of algorithms.

By Benjamin D

Jul 03, 2019

One of the best online courses I've ever took!