I like this course very much! Rope is the cleverest task I have ever done! Of course, I hope in future I will work on even more difficult problems, but this is pretty good already for me as a student!
I think the course content and assignments were great. A suggestion though, it will be more helpful if there are more and varied corner cases that would save time spent in thinking and making cases.
By 121910305044 B S D•
By 121910308046 V U S K•
By KOYA R N•
By Akhil k N•
By Kamal K•
By 121910303030 A T•
By ALE P K•
By Omkar V G•
By Vineetha B•
By Pratik A R•
By D A•
By Sonu M•
By Lie C•
By 하림 이•
By Harshit S•
The course covered important data structures and gave an insight on how to counter challenging algorithmic problem through step by step analysis from a very simple approach through slowly and steadily approaching towards better performing algorithms .This gradual rise from a learner's perspective is priceless and helps in better proficiency of the topic.Week 1 taught us basic data structures such as arrays,linked list,stacks and queues and there applications while solving problems on network processing through representing the packets in the form of queues , proper parenthesization of algebraic expressions through an application of stack and representation of tree upside down which we see everywhere in computer science as well as finding the height of a n-ary tree.Week 2 represented very common data structure used in almost any production system's source code the Array List and its time analysis through a new method called amortized time which was analyzed through banker's method,physicist method and the aggregate method .Week 3 described some pretty fast data structures whose mere usage can increase performance considerably such as priority queues whose representation are binary heaps and have special characteristics of Sifting up and Sifting down to maintain the classic heap property and it introduces a very fast sorting algorithm called heap sort.And this was not it another data structure was introduced which is called the disjoint set ( Union find) which made finding paths in very large graphical systems just a formality.The best part of this data structure remained integral to the characteristic of the course to find the efficient solution gradually but definitely as it showed which finding the union find function first through representing as arrays and assigning the parents as indexes and slowly finding the problem in arrays to go through tree representation as a necessity not just because every one has done it.Then came the fourth week and a learner's performance seeking mindset was in full throttle whether it be hash tables,hash functions or distributed hash tables used by Google Drive, Yandex Disk or Drop box there was no way stopping it and thus whole week showed how much can be achieved through hash table representation of data on which these companies integral technologies are based on.On a personal note I also saw the representation of distributed hash tables in Akamai's cloud distributed networks.The week 5 dig deeper into Binary Search Trees and there representation as well as there height were subject to scrutiny with the several applications such as AVL trees as well as Splay Trees all showed certain characteristics of height balancing which are very useful in caching and thus were considered as assignment to have a look and feel of big classes and using methods such as merge and split to get fast retrieval.Thus performance oriented mind set was explored to the fullest through playing of these data structure and applying them on real life scenarios.
By Jenna W•
A really great course, you should definitely take this second after Algorithmic Toolbox, as that has an easier learning curve for the very 'CS professor' style code (lots of single letter variables and other quirks) and how projects should be submitted and tested.
That said, there is a lot of good learning in this course. Make sure you have some good Algorithms textbooks to accompany the lectures, they have recommendations in the course. I personally use Sedgewick's book and CLRS which aren't exactly what they suggest, but work well. Take your time with the learning, make sure you really understand the concepts before moving on to the homework. Use multiple sources to learn (they provide plenty of links!) and you'll do well.
In response to a very politely asked request for clarity: I rated this 4/5 rather than 5/5 stars as I found that for my preferred language (Python) some of the starter files were very poorly created. This meant I often have to rewrite the initial parsing of the inputs because it would create variables that contained incorrect or incomplete input data. Further, there were some non-harmful quirks like semi-colons or parameters shadowing Python reserved words in the code. The next course in this series, Algorithms on Graphs, did not seem to have any of these issues, though!
By Christopher W•
A really good course. I'd have to say the beginning lectures went pretty darn fast. If I hadn't had previous exposure to data structures, I'm sure I would have felt totally buried. As it is it served as a great refresher for the basics, and then the more advanced concepts later were well-presented and thoroughly analyzed. I have a good feel for the use and running times of the operations discussed. I felt bad that I didn't do all the programming exercises when only like 2 or 3 were needed to pass. They were pretty challenging, and by the time I had done enough to pass I was like, OK moving on....maybe I'll circle back to the ones I didn't get to.
By Giorgio B•
Interesting topics, great assignments except for last one. Was too hard yes (I like this), but the test response is not always clear. If there is an overflow I should read "overflow" but sometimes, as your manual says, overflow could show "wrong answer". And this is not fair, as when the problem is hard we need to understand if the answer is wrong or it causes overflow. You could say this enforces students to think and think and think until they solve it. I've used 2 week for the entire course and 2 weeks for the last one exercise.... this is a bit stressful.
By Adrian H•
The final module with the Splay tree is way too difficult when compared to the rest of the material in the course. This course would be better structured with three assignments as follows: 1) tree order problem, 2) a simpler tree assignment that only deals with a basic binary search tree, 3) the set range sum problem implementing the splay tree, as an advanced problem. Aside from the difficulty of the last module, this is a great course. It's very comprehensive and you'll take away lots of useful information on course completion.
This course was well planned and the lectures were very good. I feel like I learned a lot from the course. Most of the programming assignments were good and helpful for learning, but I found 1 of the hash table assignments and 2 of the binary search trees assignments to be very difficult and time consuming. I would prefer the assignments to be doable in a reasonable amount of time. Maybe the really difficult assignments could be marked as optional. I also think the time estimates for doing the assignments are way too low.
By Aman A•
A great interest generating course that gives us both an insight as well as an opportunity to explore the vast field of algorithms and data structures. I recommend to anyone that wants to start in this field as well as to those that are well-versed in this field as it will definitely teach you something new (if not new than a different perspective to looking at the same problem will definitely be provided) :).
Kudos, cheers and all the luck to my fellow learners, our teachers and to the students yet to undertake this course,
By Miguel R•
Excellent course in general, and I learned a lot of new data structures that one doesn't generally learn about in standard algorithms and data structures courses, like disjoint sets and splay trees.
Only complaint is that sometimes the problems are too complicated for how easy they are. By this I mean that the problem statement is very long and elaborate, when what they are really asking is something trivial that can be programmed in a few lines, but it takes a while to understand just what they are asking.
By Lee Z Y•
Great course! I figured disjoint sets was pretty interesting - the rest of the material I get by with no issues, but boy: the BST advanced assignments (splay trees) in week 6 is by far the hardest assignments I tried in both Algorithmic Toolbox and Data Structures. It's a pretty big jump in difficulty (I don't think they explained splay trees in the lectures very well; it was pretty fast), but I was so ecstatic when I solved it that I didn't mind.