Jun 01, 2017
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.
Jun 03, 2018
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.
автор: clayton w•
Mar 16, 2019
Want to listen to a boring old man incoherently mumble and say "UM" every 5-10 words? This course is definitely for you!
автор: Vaibhav P•
Jun 04, 2020
One of the best courses I did. I am guilty of not finishing many courses on coursera, but this one kept me hooked and motivated enough to keep coming back at regular intervals and actually finish. The actual learning from the course is more than just algorithms as we get detailed feedback on style and even some design aspects of the code we submit. The only downside of such depth assessment review system is that we are forced to use Java for the solutions, sometimes which can have its own learning curve, and hard to get 100% score because of some nitpicks which are not worth spending time to fix for a course assignment (they would be for actual production code though). Also, the specs provided are sometimes missing requirements which we only find out by submitting once and reading the assessment with failed tests.
One thing that I think should be improved is the hint system for quizzes. After we submit, in most cases the hints are not enough to understand how to solve the problem. So it leaves you less fulfilled than ideal, knowing there is unsolved problem out there and no real help.
Overall, totally recommended.
автор: Benjamin W•
May 11, 2019
I have taken several online courses, mostly on Coursera, which I've enjoyed and learned a great deal from. However, I would have to say that this is the best online course I've taken so far. The subject matter revolves around some of the most fundamental algorithms for computer science and emphasizes the importance of data representation. The choice of Java as a programming language for this course helps emphasize the distinction between data structures and abstract data types. The lectures relate the material to concrete and interesting real-world applications but also occasionally mention related open problems in computer science. The instructor is very clear in his explanations, which often make use of excellent and helpful visualizations. Lastly, the assignments are challenging but rewarding and the feedback provided by the automated grader, which accounts not only for correctness of the submitted APIs and their implementations, but also for coding style, timing, and memory use, is an invaluable learning tool.
Jan 16, 2020
Personally, I think that the assignments in this course (not in the Algs textbook) did negligible improvement in solving problem. On the other hand, writing assignments feels like doing a Java project on your own. This feels not bad since it's not easy for programming noob like me to explore and participate in projects on GitHub owing to lack of confidence : (. BTW the autograder is so awesome that it even examines your Java code style! This is pretty good for students who had learned C/C++ before to form a better code style in Java. For the videos, it's pretty good for novice (I've been confusing for a long time to find a good way to start and learn Data Structure). However, in other words, the CS knowledge taught in this course is far beyond needed. It's still necessary to drill yourself on other sites like LeetCode, and learn the relevant mathematical algorithm analysis (maybe by reading Introduction To Algorithm).
Still, I will definitely proceed with the Part 2! Genuinely appreciated, Mr. Sedgewick!
автор: Alex E•
May 21, 2017
Great course with appropriately challenging assignments! Clearly a lot of effort was put into designing them in such a way that the API and code-tester forces you to implement precisely the algorithm they're talking about, but you still have to write all the interesting code from scratch. Difficult, but a ton of test clients and other resources are provided to help you out. I felt really rewarded for each assignment completed.
I was taking this as a refresher (took Algorithms in college), and found the lectures much more interesting this time around. For example, the way Red-Black trees were explained as an implementation of 2-3 trees, made the algorithm much easier to understand than how I learned it before, which was that a red-black tree is a binary tree maintaining such-and-such invariant blah blah blah. As a result I retained more about how the algorithm works, and the invariant actually makes sense to me now.
автор: Rui D•
Jan 10, 2018
This course is designed so well that it is the best as an introduction for algorithm beginners. It does not include any obscure maths formulas, but it has a lot of propositions and properties that build up the rigorous analysis framework, teaching us how to think systematically in terms of designing, analyzing and choosing algorithms. Leveraging Java, you can learn the algorithm implementations and applications by experiments. This approach makes algorithms learning very practical. The course also advocates for good programming style which is very important in software construction in the industry. This is assured by using some good tools such as FindBugs and so on. Last but not least, this course provides very rich learning materials, especially the high quality assignments with good auto-graders which provide us invaluable feedback, and high quality example source code and standard library.
автор: Xinyuan Z•
Jun 13, 2017
I can't measure how important this course is to me. I am a graduate student in the field of Theory & Engineering of Control, which is actually a domain related half with theory and mathematics and half with engineering, coding and application. I have involved in some international competitions before, responsible for C++ coding. After I struggled to finish this course and all the assignments, however, I find that I have a better understanding of programming. What I should do is definitly not just finish the functions raised by a project, but to analyse my codes, to optimise them and maintain them as something can be reused. Also I got to know the fields of robot path planning (A* algorithm) and so on. I will take another part of this course in the next month cause it really takes my a lot of time, but there are something crutial to deal with. Thank all the friends I've met in the forum.
автор: shant c•
Aug 14, 2017
I took this course with no prior experience in Java, and that was not a major roadblock to finish this course. The way Dr. Robert and Dr. Kevin have designed the assignment, it’s just fabulous. They provide the helper class – StdDraw, SET, and etc. All you need to do is think about applying the lectures from Dr Robert. The delivery of the lecture from Dr. Robert is very insightful, crisp, and to the point. I liked how Dr. Robert was excited while mentioning his Red-Black tree reference on a TV series (Spoiler Alert !!!), and how the order of complexity of various data structures are computed and compared. The assignments are designed to apply the concepts on real world problems. I would like to thank Dr. Robert, Dr. Kevin, and other mentors for sharing this well-organized and well-crafted course on Algorithms. I can’t wait to begin Algorithms Part II.
автор: Peter K•
Jan 02, 2018
I highly recommend this course to anybody who is willing to learn about data structures and algorithms, understand in which situation which algorithm or data structure may be more suitable, how are these used in real life problems or even if you only want to practice them again. The lectures are very well structured, providing a lot of useful information and each week (except for the last one) requires to program a challenging* assessment (*depends on your algorithms and data structures knowledge and experience level). Even though all the material and programming assessments are in Java, it is should not be a problem to implement the same in any other programming language (except for you might miss the generics in some - requiring you to implement "same" data structures for different primitive/elementary data types).
автор: Liyang L•
Feb 06, 2020
Excellent course covers basic algorithms and data structures, where theories are intuitively explained along with practical applications.
What impress me most is the programming assignments, which are both challenging and fun, helps strengthening my understanding of the topics and improve programming skills. It's very satisfying to improve my code and pass every correctness/memory/timing/bonus tests. I do wish there are more programming assignments.
However, I hope each topics are taught more in depth, I feel those text books contains way more contents than online courses, but reading those walls of texts are too dry and daunting compared to online learning and practicing. I understand that buiding a learning platform like this requires huge efforts, so this is just my wish.
Oct 27, 2019
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.
автор: Nikita Z•
Mar 22, 2017
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.
автор: Igor B•
Jul 03, 2017
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?
автор: Sudhir K•
Nov 19, 2016
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++.
автор: Carlos F P•
Feb 20, 2020
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.
автор: Ruchitya T A•
Aug 14, 2017
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.
автор: K M M H•
Jun 01, 2017
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.
автор: Kevin J•
Jul 05, 2017
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!
автор: Jeremy s•
Aug 20, 2019
I am thrilled with this course. I learned so much in such a short time. The instructor was very thorough and his explanations were detailed and comprehensive. My favorite part of the course was the assignments for each week. These assignments taught me to think critically and to approach problem solving in a more directed and sophisticated manner than I had previously attempted. My skill has improved dramatically, as well as my confidence. Additionally, I developed a perseverance to truly understand complex material and complete assignments that I never would have guessed I could achieve. Thank you so much for this course.
May 25, 2017
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.
автор: Julei Y•
Dec 09, 2017
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.
автор: Hongkai Y•
May 29, 2020
This is a great course! I am not a CS student and have never learned algorithms before, yet after finishing this course I feel I have a very good command of the algorithms. The professor explains the complicated algorithms in a very clear and intriguing way. What I found particularly helpful about the course content are the visual demos of the algorithms and the weekly assignments. The demos make me grasp the idea of the algorithms intuitively and the assignments improve my practical ability. You won't be regretful if you taking this course! (and the course is COMPLETELY FREE!)
автор: Yuvaraj T•
Apr 17, 2020
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.
автор: Vivek b•
Oct 12, 2017
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!!!
автор: Steven C•
May 14, 2017
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.