Back to Algorithmic Toolbox

stars

12,383 ratings

This online 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)....

SG

Jan 19, 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.

BD

Jan 19, 2021

The course was really amazing which provided deep knowledge from basic to advance that how algorithms works and how to design algorithms. Thanks to all the expert teachers who taught in this course.

Filter by:

By Boris T

â€¢Jan 4, 2018

Great course with the thoroughly prepared exercices and detailed video explanations for each topic. Covers a wide range of fundamental alogorithmic technicues that are good to learn for everyone who wants to become a better software engeener or just to improve programming skills. The course passing grade is pretty soft. It is enough to attentively watch the video lectures and carefully implement algorithms covered there to pass the course, however some advanced problems are really challenging.

By Fil G

â€¢Oct 20, 2018

A very thorough introduction to the core concepts of Algorithm design, including sorting, binary search, greedy algorithms and dynamic programming. The assignment are tough with the last few definitely challenging, you will spend quite a bit of time implementing them if you are new to programming in general but there is enough help on the site (and the internet) to help you figure things out. Working through the problems is essential to getting the most out of the course.

By Tushar K

â€¢Jul 5, 2018

This is a really well planned course. I was doing this course and auditing my on-campus course too, initially. But, I soon realised that this is what I need. It has a perfect balance of mathematical rigour and practical programming. The programming challenges sometimes felt tough, but since ample time is given to solve, I could make it in the end. Thanks to the instructors for teaching students across the globe. Knowledge is a debt that can never be repaid! Thanks

By Lee Z Y

â€¢Aug 26, 2017

I think this is the best algorithms course I've taken so far. It wasn't too hard, but if you wanted some challenge there's always the advanced problems. Speaking of the problems, I highly recommend that you solve all the programming assignments, including the advanced questions. Even if you can't solve it on your own, search up how to do it; just don't give up. Passing is easy, but to get the most of the course you need to finish all the programming assignments.

By Bhupesh D

â€¢Jan 20, 2021

The course was really amazing which provided deep knowledge from basic to advance that how algorithms works and how to design algorithms. Thanks to all the expert teachers who taught in this course.

By Melody C

â€¢Aug 15, 2019

I'm giving 3 stars out of respect for the hard work the instructors, Coursera community and course mentors put together to make this course happen, but the quality of the course is at most 1-2 stars. I finished 100% of the assignments even though half of that was required to pass the course, and I have a few concerns about this course:

1 - Poor Use of Pseudo Codes. While Pseudo codes are perfectly fine and sometimes extremely helpful, none of the Pseudo codes in this course were intuitive and can be efficiently translated into real codes. First of all, variable names are confusing and do not tell you what this symbol holds at the first glance, just like how the whole course was taught in a mathematical way rather than programming way, variable names are all like i, j, s, t, l .... when we could have made them into something meaningful and readable.

2 - Since only Pseudo codes were given, it's hard for newer students to learn how a working algorithm actually looks like and how it runs at each step. I feel that either you already know how to do it, or you can't come up with one at all before debugging for hours. So it is more important to show something that actually works from the beginning, then students can imitate -> improvise -> create. Again the Pseudo codes are terrible examples.

3 - DP sections were badly explained, really really bad ........ any of the YouTube videos and GeeksforGeeks explanations are 10X clearer and more intuitive. I feel like the instructors just wanted to teach the math instead of how to program. But the math isn't any difficult to understand, the key is to convert ideas into codes, and this part was completely ignored.

By Joe M

â€¢Aug 24, 2018

There is barely any support for this course. On most assignments, if your code doesn't work, you get zero direction in regards to having any clue on how to proceed.

By Nasim Z

â€¢Jun 14, 2016

Algorithmic Toolbox consists of a series of slides containing slimmed down explanations on introductory algorithmic concepts, followed up with programming assignments. The slides are the centrepiece of the course, as the presenters rarely stray from the bullet points and pseudocode they're comprised of.

I learned a lot during this course. Although, to gain confidence in your knowledge, this is a course that will require you to seek out additional materials to supplement your learning. Perhaps unsurprising being an introductory course, but the presenters struggle when faced with setting expectations.

Throughout the course presenters often gloss over fairly complex concepts, treating them as they were trivial knowledge. This applies to mathematical definitions, proofs where most steps are skipped, tree diagrams without the context of their underlying theory, or bullet points used in place of what could be detailed explanations.

All material is left equally weighted. Rather than providing explanations like: "We don't need to go into detail on this, only x concept from it is important for what we want to focus on. Reference this chapter in this book for more detail." presenters would read mathematical definitions verbatim from the slides and move on. I was often unsure of how much I would need to know about such concepts.

In terms of communication ability, the presenters don't hold up against many of the free/low-cost services I'm accustomed to using, for example: MIT OpenCourseWare, Udacity, edX, Khan Academy, Code School, Treehouse, etc. Perhaps unsurprising, as these competing services often feature professional communicators rather than professional researchers. But the marketplace for quality online education is definitely becoming a competitive one. Users now expect nothing less than presenters with exceptional communication/teaching ability.

In most videos the presenters read verbatim from the slides and motion with their hands to explain concepts that would be better broken down on a whiteboard. Rarely straying from the slides, the times the presenters go into more depth on a concept, you get a scribble in the corner of a slide, lacking the clarity I've come to expect when approaching complex concepts from master educators like YouTuber PatrickJMT or Khan Academy. After a couple weeks into the course, I just went straight to the slides, read MIT's Introduction to Algorithms, and skipped most of the course videos.

But all things considered, the course served as a good curriculum to guide my focus through the introductory concepts, regardless of where I sought it out.

By Ashraf K

â€¢Sep 7, 2016

the material are great so much information and it is the first from the hole specialization

but! the explanation is so weak doesn't match at all with this big data

the pseudocode is so distracting and hard to read

i always get lost and i don't know is it an array in the code or variable and what does he want to do with it

the pseudocode should be just a normal english code saying what to do

not an understandable signs :\

i am really sad that i couldn't get benefits from this amount of knowledge

By Federico C

â€¢Mar 9, 2021

There is no way of understanding content without checking other sources, the explanations are poor.

By Ramin A

â€¢Oct 31, 2016

Def a useful skills to have when starting to interview for jobs. This is a hard course to teach to begin with. I found the lectures really boring, too long, hard to understand and just not really motivated well. I think the homework problem are good, but they are very time consuming. You need to use various methods to find edges cases and though that might be a good skill to have as well, it's just too much to get done in one week and somewhat frustrating when you're only stuck in one test case. I think this could be an excellent course with a few modification on the slides and adding more motivations and making shorter homework problems that focuses on the main part of the material for that as oppose to things we've already covered in the previous week. At the moment, I don't think I'll continue this specialization the way it's designed.

By Amit J

â€¢Nov 18, 2017

The auto-grader and py codes are a big let down for me. The auto-grader takes too long to produce a result (more than 1 hour) and for me many a times it has been the case. No one from the organizing team spent any time in resolving this issue.

The py code is a big let down for me. The way i/o is done is pretty lame. There is no print statement displayed that states "Pls give input" etc... For output you need to do Ctrl + Z and then you see the answer. IMHO this is bad coding for i/o.

Organizers need to understand that working professionals are pressed for time and automation should help them rather than frustrate them and lead to loss of time.

By Nader a

â€¢Jul 7, 2020

This course is so bad, I needed a lot of external resources so i can understand the lectures, the assigments are far from the algorithms explained in the lectures, we cant think and find a solution if we do not get the basics explained well also the usage of pseudo code instead of one programming language

makes everything unclear, the names of the variables does not relate to its reference the professors are just naming any names arr1,arr2,... etc so this causes a misconception.

By Amir M O

â€¢Jun 20, 2019

I wouldn't recommend this course to anyone. Just go on youtube and search for data structure and algorithms videos.

some of the the instructors here have language barrier and it makes it super difficult to go through this course.

No help when you are stuck either.

They keep making everything too complicated and keep using fancy tough math words.

If you are interested in Academic side of computer science take this course otherwise don't waste your time.

By Edson J A M

â€¢Mar 21, 2018

I tried to have this specialization and canceled before the 7-days free because the explanation is so poor by the teacher.

When seeing about Big-O notation is possible to see a poor explanation and most of the time you need to access a content to other source as KhanAcademy. It's not acceptable.

By Andrea L

â€¢Sep 1, 2017

Very unsatisfied. At the end, I feel I learnt nothing.

1 - Explanations not always clear

2 - Too many exercises in the assignments

3 - Some exercise was not very useful and takes much time to understand what they want exactly.

4 - Price is too high per month for this course.

By Abdelrahman O A M

â€¢Sep 6, 2021

The course started great. but starting from week 3 things got so abstract and literally I needed another course so that I could understand what was presented in this course.

By sudheer n

â€¢Aug 19, 2019

This is one of the best courses i have taken. The way these instructors come up with a problem and explain why existing techniques are not that helpful, and intuitively explaining why new method/technique would suit the problem. everything about teaching was simple yet amazing.

Moreover the assignments are also quite challenging, so they will for sure give you tough time and make you put in more effort which in turn sharpen your strengths on the concepts.

By Lucien

â€¢Mar 21, 2017

This is a great introduction to a more formal approach to algorithms and I look forward to the rest of the courses in the specialization. The dynamic programming week was somewhat more difficult than the other weeks, but I think that could be remedied with more visualizations during the lectures.

If you're lacking in any basic maths skills, I would recommend running through Khan academy first. Functional notation and series would be especially useful.

By Kirill S

â€¢Oct 2, 2017

This course gave an insight in the world of algorithms and taught me a number of different approaches for solving algorithmic problems (stress testing, for example). I discovered the fact that my programs didn't worked properly in all cases (I was pretty confident that they did) and realized that there are really wise solutions for many computation problems. Lastly, all course materials were explained in detail, so there were no unclear moments.

By Kevin K

â€¢Aug 4, 2016

This course is well-designed and delivered by the experienced instructors. It is particularly suitable for those who have some basic knowledge in programming (knowing how to use if-else if-else statements, for-loop and while-loop, etc.; knowing a little bit how to write a simple code in C, C++, Python or others) and would like to enhance his programming techniques through polishing his logical thinking ability while he is designing a algorithm.

By Jonathan O

â€¢Aug 29, 2018

I love this course. Designing algorithms in the lectures and implementing them in the weekly assignments is not only rewarding and fun, but also engaging. The test cases applied to the algorithms in the assignments are comprehensive, looking for hard-to-find, yet very important, edge cases, meaning significant testing is required for each submission, mimicking the requirements of any algorithm used outside the classroom.

Well, on to course #2!

By Souvik R

â€¢Jul 23, 2017

So far the best course I have seen that actually teaches algorithms.This course not only explains you the algorithm but will also make you solve programming challenges based on the algorithms which requires you to look at the algorithm from a different perspective and then solve the challenge.This is what I loved the best about this course.I believe I am much better now in implementing algorithms and solving programming challenges.

By Taranpreet s

â€¢Dec 28, 2019

The best part of the course is Assignments, as only after trying to code the algorithms one can appreciate the content of the videos and reading Material. Conceptually Dynamic Programming(Weeek5,6) is the hardest to grasp. Assignment wise I found week 4 Divide and Conquer to be more challenging. For DP assignments, pseudo-code is given for most of the questions. Thanks to the instruction team for creating this wonderful course.

By Ananth D

â€¢Jan 26, 2020

The course content is very well designed, also the problems enhance your thinking and take it to a next level.

Also the explanations by all Professors is too good, when i repeatedly listen to the same lecture, i get greater clarity into the concepts. Thank you to all the Professors involved in teaching and designing the course.

I wish there could have some more links provided throwing clarity on of dynamic Programming.