This is a great class. I learned / re-learned a ton. The assignments were challenge and left a definite feel of accomplishment. The programming environment and automated grading system were excellent.
Good contents and the logic of the whole course structure is very clear for a novice like me. The weekly homework is also awesome. Would recommend to anyone who wants to learn about computer science.
Prof. Sedgewick is super great. This course is tough although there are only programming assignments in the coursera version. The videos can be viewed several times and we may catch up on ideas that we miss due to short-attention spans etc issues. I shudder to think of the days when we did not have video recordings... The assignments are graded by a machine using a very carefully designed method- they really take teaching seriously out there. It is all fine and such and did you know, they have a super cool java development kit and an algs package.. i haven't used java much for many many years but I enjoyed all the help that i got out of the course's JDK that offered loads of type checking etc. and you can install in linux or windows. Have fun at it, if you can.
by Adam S•
Highly recommend to those wanting to learn from scratch or refresh their memory on data structures & algorithms. I recommend supplementing this course with the textbook version which features more details and homework questions in addition to the very well made programming assignments on this platform. If you enjoy this course, I would also highly suggest to check out the part 2 of this course. It is a little more challenging however I would debatably say the information in that part is very valuable as it includes many practical applications you would see anywhere. Cheers to Kevin Wayne, Robert Sedgwick and any other person who contributed to the development of these resources. It is greatly appreciated by many self-learning students including myself.
by Nikita Z•
Great overview course. I have taken algorithms in college, and I am currently a software developer, but I have found this tremendously useful to review the material (especially good for interview prep!). I even gain a better understanding of concepts I thought I knew well already. The professor explains everything in a concise and thorough manner, the homeworks are well thought out, and the hints are helpful. The only improvement I could think of for the course would be to make the lecture sound a bit quieter during the few times the professor would cough -- the mic distortions can be a little annoying. Overall, highly recommend this course to anyone looking to learn basics of algorithms or review the material for interviews or general understanding.
by Igor B•
It is one of best courses I took. Prof Sedgewick explains complex things in easy manner, by providing not only steps to algorithms but also reasons, context, history about them. So your background becomes more solid.
For instance, I was always wondering about red-black trees why its properties are stated in some particular way, but by looking at 2-3 trees, I now understand roots.
Practical examples are really good and they teach you program according to API and be careful about small details.
I would ask authors of course to add practical tasks to last 6th week, without them it is just theoretical. I am looking forward for 2nd part of course which should appear soon.
Could you please provide estimates for 2nd part of course if possible?
by Ted A•
This is perhaps the most valuable computer science course I have ever taken. The professor is clearly knowledgable (after all, he created a number of these algorithms), and he is also excellent at teaching the material. The assigments are useful and well-designed. The autograder is disturbingly good at ferreting out bugs and inefficiencies in my code. The slides are well-designed and interesting. The professor spends the right amount of time working through examples to make the concepts clear. I have been a (mostly self-taught) professional programmer for decades and am good at my work, but this course will find practical application in my work and will make me better at what I do. Many thanks to all involved in making it available.
by Sudhir K•
The best algorithms course. The video lectures are very good. Prof.Sedgewick builds the concepts very well. The code examples/library written by Prof. Wayne and Prof. Sedgewick's code are very compact and the best I have seen. The online website is great supplement to the book. The auto grader is air tight, that forces the student to think and write their code to the specs. My greatest appreciations for Prof. Wayne and Prof. Sedgewick. I wish students have the option to submit their solutions in C++ because in most of the languages the core algorithms/data structures are often written in c/c++ , I understand it is not easy because the course libraries and grader has to written for c++.
by Carlos F P•
This course has a great balance. Want to push yourself to the very limit to write code that is efficient, has a small memory footprint and is correct ? just get 100 on the assignments. Want to become familiar with the most basic algorithms and data structures that every programmer must know (my case) ? just get 80 points on the assignments. They are fascinating, and cover some applications of algorithms and data structures to problems, they allow you to see a little bit why these topics are important. Overall a nice experience. I can't believe this course is offered for free. Professor Sedgewick truly wants to help humanity improve, I guess.
by Ruchitya T A•
A wonderful course that not only teaches one the concepts behind a given data-structure or algorithm, but also prods one to realize software implementations of the same to solve puzzles/ practical problems. The coding assignments do take some time, they are not easy. I took more than the stipulated 5 hours on almost all assignments. But it was worth it, since the problems presented are definitely not easy and give a real sense of accomplishment once completed. There are plenty of pointers to lead one to the correct answer eventually, in the form of checklists and the discussion forum, so fear not! Will be taking up Part 2 of the course soon.
by K M M H•
An excellent course for programmers who already knows programming but want to take it to the next level. Prof. Sedgewick has done an excellent job explaining the data structures and the algorithms by starting from simple idea and gradually building up on that. His lectures are slow and easy to follow. The programming assignments are interesting and challenging at the same time. I wish the programming exercises were available too. I feel that whatever I have learnt from this course will be immediately useful in my day to day job. Thanks coursera, Prof. Sedgewick and Prof. Wayne for the course. Looking forward for taking Algorithms Part II.
by Kevin J•
Amazing course to learn data structure and classic algorithm! Thank for all of you provide such a awesome learning experience. As a fresh guy who know little programming skills with python, I just want to try some more challenge course and learn more useful thing but never believe i could complete this course because java and algorithm is absolutely new thing to me. When try to figure homework assignment out, it is really struggling and frustrating, you will definitely enjoying the time during debugging codes and use lecture knowledge to implement your ideas. Finally, thank you so much for all the course mentors and forum's classmate!
by Kristian R•
This course is fantastic! Not only does it benefit from Robert Sedgewicks *huge and deep* background knowledge that has shaped the field, it also is very thoroughly engineered. Besides the actual theory on algorithms (which explains the contents of Roberts book in a very accessible way), it also teaches indirectly: OOP in Java, programming practices, style checks and rigorous unit testing (the unit tests for the autograder are unmatched among the online courses I have taken). The only downsides are 1) writing tests yourself is not required (but it helps getting things done) 2) not seeing more of Kevin. Thanks to both of you!
the course was perfect after the introductory CS course, it make you starting to pay more attention to how efficient you program runs. Besides, aside from the intricate math analysis, the instructor also spent a fair amount of time emphasizing on the practical applications where these algorithm truly shines, I love the course not only because the knowledge I acquire about these alogorithm, but the more fundamental reason why we even need them at the first place.
HW each week was fun and challenging, however, sometimes it requires a fair amount of self-exploring before hitting the right track, but it was totally worth it.
by Julei Y•
Excellent algorithms course. Thank you Professor Robert Sedgewic and Kevin Wayne for producing such high qualify course on algorithms and making it free to all those want to learn.
Professor Robert Sedgewick explains complicated concepts in a much simplified and understood way, with a lot of visualization and concise code it's clear and easy for me to understand the logic. I also like the projects, Kevin Wayne organized them very well, the auto grading is super and give us immediate feedback on function correctness and time memory usage. Doing projects helps a lot to retain and solid what I have learned.
by Juliano P•
This course is AWESOME! Professor Sedgewick is great, the slides are very clear, all the selected algorithms have animations step by step and the tests have extensive test cases to make you worry about the smallest aspects of the code (correctness, memory and timing).
I took the first course of Stanford's Algorithm Specialization, and I say this one is much better. The Stanford's one is theoretical and academic. I think it is more like a deeper dive if you are willing to be an algorithms specialist, but for practical purposes, Princeton's course is much better.
by Aavo M•
A very well explained course. But for some exercises the task was confusing. With 8puzzle it took me a lot of time to understand, that for the node priority calculation the moves must not be some global variable of steps so far, but the moves of the min item popped from priority queue. And also with kdTrees for too much time I spend on finding a general solution, unilt I realised that all the points are actually in the unit square (this simplification makes it very easy to find sub-rectangles and to solve the exercise). I'll defenitely buy the book also now :)
by Yuvaraj T•
One of the best course on the internet to learn the data structures with its interesting mathematical applications(algorithms). The assignments are really interesting and challenging which gives us the feel of accomplishment when we finished it. The professor Robert Sedgewick explains clearly in the every part of this course. With the active discussion forums we can clear our doubts instantly even if you are in the other end of the world. Thank you for the professor Robert Sedgewick and professor Kevin Wayne and Princeton university for this great course.
by Vivek b•
This course gives a really good feel of data structures and object oriented programming. The programming exercises are real fun (although exceptional handing/corner cases are bit frustrating). The course starts with union find and basic data structures like stack, queue, but the difficulty escalates very quickly (one needs a lot of patience for thorough understanding of Binary Search Tree (BST), Red-Black Tree, and Kdtree). I am sure you would learn something new even if you have already taken a course on Data Structure/Algorithm. Best of luck!!!
by Steven C•
Lectures and explanations are methodical, detailed, and to-the-point. Occasionally I might be upset that I didn't understand something as clearly as it appeared as though Professor Sedgewick did, but, of course, part of the experience mandates that I make myself understand! The professor was encouraging, the TAs were extremely helpful and generous with their time, and my fellow students were kind, respectful, and also helpful. I would highly recommend this class to anyone seeking to enhance their knowledge of computer science and/or programming.
by Anton M•
Great introductory-to-middle course on data structures and algorithms.
You're expected to know some Java in order to follow it, but acquired skills can be easily transfered to other languages.
On the other side, instructors will favor usage of classes (like set or stack) from customly written library, not standard Java one. Another thing, after each subject there are some examples of interview questions in the form of exercises. They feel like badly prepared and you'll spend most time looking for a better explanation/answers on the forum threads.
by Alfredo V•
Wow, great course, one of the best in Coursera! I enjoyed the lectures a lot, they are engaging and fast paced, the examples of practical applications are interesting; the assignments and interview questions are well thought and challenging.
Thanks so much to the Princeton professors who decided to make this amazing material available online. The course is so good I had to buy Sedgewick and Wayne's Algorithms book, not because it was needed for the course (it is not, you have all you need in the lectures), but because they totally rock! Thanks!
by Aneesa S•
After completing this course, I understand the fundamentals of algorithm design and analysis. The instructor presented the course material concisely and has a very deep understanding of algorithms. Being able to see the output of the autograder allowed me to see exactly where my code had errors or was not efficient enough. The assignments were very challenging, but after completing them I was sure I had understood the material fully. Thank you Princeton for this wonderful course! It was definitely the best online course I've ever come across.
by Tom T•
Brilliant! I started the Algorithms course with not insubstantial software experience. However, I last took data structures over 10 years ago and decided to give myself a 'refresher' since my area of specialization rarely utilizes structures such as BST's or hash tables.
The assignments are 'just right' in applying algorithmic concepts and real-world technical rigor. The problems are focused and contained to fit busy schedules, but, at the same time, challenging enough to provide a sense of accomplishment and to see practical applicability.
by Zachary A G•
I find Prof. Sedgewicks' moderately paced lectures very concise and easy to follow. His animated demo of each algorithm clearly demonstrates how the algorithm works. I find the problem sets challenging and fun, and finally finding an optimized solution as very rewarding, especially when I get the bonus scores. While this course uses Java as the programming language, I find the concepts quite easy to apply in other programming languages such as C. Thank you very much course staff for offering this excellent course for free here at Coursera!
by Kor T•
Thanks for offering such wonderful instructions! Before taking this course, I had spent many hours reading the text book and my progress was painfully slow. This course with its instruction videos and programming assignment allowed me to quickly master the key concepts and apply them to solve real problems. The instructions from Professor Sedgewick are among the best that I had ever received from a teacher. I am looking forward to applying the knowledge in my future projects. Thank you again! God Bless.
by Oleg G•
Typical question of novice of programming: What language should I learn first?
Typical answer is incorrect, sadly.
Correct answer is: It doesn't matter. Algorithms and patterns matters. I'm not sure about patterns, but Donald Knuth and Robert Sedgewick are best at algorithms. And here you have unique possibility to learn from the best. Rush for it! And be prepared, it won't be easy.
And many thanks to Kevin Wayne for his fundamental job. Probably he is the one who we should thank for this great opportunity to learn it here, on coursera.