Chevron Left
Voltar para Algorithmic Toolbox

Comentários e feedback de alunos de Algorithmic Toolbox da instituição Universidade da Califórnia, San Diego

4.6
estrelas
9,841 classificações
2,075 avaliações

Sobre o curso

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

Melhores avaliações

SG
19 de Jan de 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.

MM
28 de Set de 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.

Filtrar por:

1 — 25 de 1,998 Avaliações para o Algorithmic Toolbox

por Greg G

25 de Abr de 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.

por Mayukh S

15 de Fev de 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.

por Tom A

23 de Dez de 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.

por Mohit S

7 de Ago de 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

por PUCHALLA S P R

10 de Fev de 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

por Josh F

25 de Abr de 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.

por Satesh P

21 de Abr de 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.

por Dheepak J

14 de Mar de 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.

por Sandhya G

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

por mugnaio

29 de Set de 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.

por Brian T

9 de Ago de 2019

I was able to complete the entire course, however I do see a LOT of room for improvement.

The transcript has many incorrect words. If the lecturers are reading off a script, then it doesn't seem like it as many of them accidentally mess up their words. This can confuse novice learners. The slides appear to be the critical portion of the course, with the lecturers explaining what is on the slides and little more.

I used Python for this course. Most novice learners will be using IDLE and not touch anything related to PyCharm (or, like me, already have PyCharm Community installed rather than PyCharm EDU and would not like to experience the annoyance of having to install yet another PyCharm). Much of the input for the autograder relies on sys.stdin, which would read files stored on the server. However, for client testing on IDLE, this needs to be replaced with an input() function so that you could test for bugs. Novice learners may not know how to do this and will experience frustration when their input isn't accepted.

Many of the lecturers are probably not native English speakers, and that is not a problem. Personally, I can easily understand what they were saying. However, other people who do not have experience listening to those with more pronounced accents may have difficulty understanding the lecturers, and the accents will obviously not help when it comes to understanding new and difficult concepts.

The usage of pseudocode is understandable, as people will be coding in multiple languages. However, I would recommend that the pseudocode use names such as "max_array" and "min_array" rather than simply "M" and "m" with the lecturer having to remind us which is which. Same for indexes, don't use "i" and "j", try to use "row" and "column." This will teach us good coding habits (use descriptive names) while making explanations clearer.

Of all the courses, the "worst" part of the course is likely the weeks involving Dynamic Programming. Dynamic Programming is a very difficult but also very important. Most novices will have never seen the concept of Dynamic Programming, so the need for a clear lecturer and in-depth explanations becomes much more important. However, the explanations are rushed (which is not good as 2D arrays are being used more and are much less intuitive). Also, I'm surprised they didn't talk about shortest paths/number of paths, which would help people get used to 2D arrays.

Finally: Unless you are already experienced in these algorithmic concepts, the time you need to complete this course is probably much greater than the course's estimates. Be prepared to dedicate yourself.

por Anoubhav A

11 de Set de 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!!

por 江祖榮

4 de Jul de 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.

por Do H L

4 de Abr de 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.

por Kyle C

26 de Jun de 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.

por Maxim B

6 de Mar de 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?

por Nguyen T C D

1 de Jul de 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

por Roger T

9 de Jun de 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.

por BOUNSI D W L

10 de Nov de 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.

por Anya G

6 de Ago de 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 :)

por Rahul s

23 de Dez de 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.

por Anuj G

19 de Fev de 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 ...

por Putcha L N R

5 de Jul de 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.

por Satyam K

9 de Fev de 2019

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

por Aditya T

12 de Mar de 2019

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