- 4 reviews
- 4 completed
Ahhh. I hate to be the party pooper here. But... I enrolled for the fall 2013 offering of this course, and from what I can tell, it was bad. I am not one to give up easily, but I really found this to be a waste of my time. I dropped out after three weeks and focused on catching up with Jeff Ullman's automata course instead, and I definitely made the right choice. I am coming from a math background, and I signed up for this course because I hadn't done anything in R in a while and this seemed to be a good starting point to brush up on R and statistics in general. Now, considering Jeff Leek's background, I really didn't expect a math-intense type of course, but I also didn't expect it to be this superficial and wishy-washy. In addition to that, the lectures suffered from a complete lack of structure, and the weekly assignments were not particularly challenging. The first peer-graded project caused a lot of confusion, since we were supposed to analyze a data set without having even touched on the relevant topics in the lectures yet (except for linear regression, if I remember correctly). For that reason, the following week's lectures were released early, but at the same time it was made clear that they weren't necessary for the project. Huh? This was the point at which I decided to drop out. - Staff was completely absent from the forums, even with all the confusion about the project; the course seemed to be running on auto-pilot. Looking at all the other John Hopkins course offerings and some of the reviews (especially the data science specialization track), I get the feeling that the motto is "quantity over quality". All in all, this course unfortunately just confirmed my preconception that math-y stuff should be taught by math-y people. Sorry. On the plus side, Jeff comes across as a likeable person.
Tim Roughgarden is by far the best instructor I have encountered in the MOOC world so far - he manages to be mathematically concise and absolutely hilarious at the same time. The current iteration of part 2 actually has a thread on the discussion forums titled "Favorite Tim Roughgarden quotes", and it has gotten quite some attention. Tim's mantra ("Can we do better?") will stay with me forever. About the course... Pros: The topics are carefully chosen and always motivated by some real-life problem. The programming assignments were absolutely awesome. Some reviewers criticized the absence of an auto-grader, but this has been a conscious decision to enable people to choose whatever programming language they want to work in, so the whole auto- grader issue is really just a matter of preference. I think it makes sense for this course, since the focus is clearly not on implementation-specific details. Another reviewer criticized the (huge) size of the data sets for the programming assignments. I have to politely disagree. If I'm confronted with a relatively small data set, I might as well go ahead and just use a brute-force implementation. Sure, I can run a sophisticated algorithm on a small data set - after all, I'm doing this class because I want to learn something new... But well, I think we all know how that can go. Personally, I found it highly motivating to deal with data sets that made a brute-force approach absolutely unfeasible. It also made me think very hard about the data structures I used - space is definitely an issue in some of the assignments. Cons: For some reason I just couldn't get myself to enjoy the weekly quizzes. I have thought about it for a while, and I still can't quite figure out why I disliked them. I'll try to explain anyway. There seemed to be two types of questions: The first type required some light-weight calculations, maybe two or three lines and/or some doodling. Those were okay, although I wouldn't have minded something a little more challenging. The second type of questions were... kind of black- and-white. Either you were looking at the problem from the right angle (and then the correct answer was obvious), or you weren't (and then it was just like, "huh?"). I'll admit that I had my fair share of aha-moments with the type-2 questions, and they did complement the lectures nicely, but still, something was missing. I felt like I didn't engage as much with the material as I would have liked. Now the con part of my review turned out to be almost as long as the pro part... but don't let that fool you. This is a great course, highly recommended!
I took the early 2014 offering of this course (not the self-paced version). When I signed up, my background was limited to some relational algebra and a little bit of SQL (pretty much just the basic select/from/where query). I found the course to be quite challenging, in a fun way. I didn't even have a particular interest in databases when I signed up, my main motivation was to broaden my horizon in the CS world; however, this class got me hooked! I ended up digging into lots and lots of additional literature, even after the course had long finished. Here are the main pros and cons: Pros: \- SQL and XML (including XPath and XSLT) are covered in surprising depth (considering the fact that this is supposed to be an introductory course to databases). \- Professor Widom also covers some of the important theoretical background of database design, such as functional dependencies, multivalued dependencies, and Boyce-Codd Normal Form. This was definitely my favorite part! \- The weekly multiple choice quizzes were very well designed. In addition to that, there were the so-called workbench exercises (and there were a lot of them) to practice SQL, XPath and XSLT querying. I cannot say enough positive things about the workbench! The queries eventually got quite challenging, and to me it felt more like solving logic puzzles - it was addicting. The learning curve was close to perfect. \- Professor Widom seems to be a little "all over the place" with the main story line, from XML to basic SQL back to querying in XML back to more complex SQL topics, interspersed by several theoretical concepts. When I first saw the syllabus, I was quite skeptical; I prefer a linear order over jumping back and forth. I have to admit though, it worked! In hindsight, I suspect I would have gotten sick of one of the major topics at some point, had they been presented in huge chunks. Cons: \- I would have appreciated a more extensive and also a more formal approach to the theoretical topics (but that's just me, coming from a math background - judging from the discussion forums, most people seemed pretty happy when the theoretical part was over). However, I felt well-equipped to dive into more in-depth literature, e.g. David Maier's "The Theory of Relational Databases" (http://web.cecs.pdx.edu/~maier/TheoryBook/TRD.html). Also, to be fair, there is a possibly infinite number of topics to be covered in a finite amount of time, and you have to draw the line somewhere. \- Once I started reading additional literature, I realized that there are quite a few SQL critics out there (the most prominent one probably being C.J. Date), and they do have some valid points. I think this would be at least worth mentioning at some point. \- I didn't like the mechanics of the discussion forums. But this is edX's fault. I would absolutely love to see a follow-up course!!!
I had no prior knowledge of automata theory, but Jeff Ullman is a great teacher, and with some formal background (especially discrete mathematics), this class is doable. Pros: \- I appreciated the highly structured setup of the lectures, it felt like a university level math class. \- Prof. Ullman and his TA contributed a lot to the discussion forums. \- Very interesting material. Cons: \- As others have noted, Prof. Ullman unfortunately rushes through Week 6. \- I would have liked more (and more challenging) assignments (the first two assignments of Stanford's Compilers class are a great way to practice some more DFAs, regular expressions, and CFGs) . To get the most out of this class, I would definitely recommend additional reading (just like any other college class).