Hacker News new | comments | show | ask | jobs | submit login
Coursera/Stanford online algorithms I course – a retrospective (thegreenplace.net)
50 points by wglb on May 8, 2012 | hide | past | web | favorite | 37 comments

It's funny how often people complain "too easy" but I've never heard someone complain "didn't learn enough", in regards to the coursera courses.

I think it's an indicator of how deeply broken our education system is that when assessing the value of a class people worry about how smart it made them feel (this is after all what it really means to pass a 'difficult' class), rather than how much they learned and could do with the materials after the class.

Sebastian Thrun even made a comment somewhere that he realized for years he'd be making his standford classes hard, not for the sake of learning but for living up to the reputation of being hard.

A class that feels 'easy' but which has a high amount of 'new stuff learned' should be the pinnacle of what a class can achieve. Difficulty should be a negative property of learning, sometimes necessary, but never desirable in and of itself.

Difficulty can be a good indicator that you're at the edges of your current understanding.

The MIT electronics class often poses questions during the lectures or in the homework that are based on what you've already covered but involve concepts which are still upcoming.

This is difficult, but it's vastly superior as a learning technique as you have to work your way through it for yourself.

Assignments that require you to extend beyond the covered material can indeed be extremely effective, though I'd qualify that with "for the right person."

The COMP 201 course at Rice University (intro comp sci for non-majors) was the experience that started me on a career path in software/web development. Several of my classmates dropped the course because the instructor used such challenging problems on chapter exams. Even though I hit/exceeded the exam time limit almost every time, I found the exams to be incredibly rewarding. I vividly recall grinding my teeth over an exam prompt asking us to write a set of controls for an RC car that could be driven with a TV remote control and also needed to elegantly remember macros of control sequences... only to show up the next day in the professor's office and be handed a remote control, driving the actual RC car with the solution from my exam. It's hard to beat engagement like that.

However, I still appreciate Coursera for what it is. I'm taking the machine learning course right now, and I feel that I'm gaining a fair amount of knowledge relative to the amount of time I can put in. If I were to dedicate more time to my post-academic education, I'm sure I'd want something that moved at a faster pace or set more difficult challenges before me. It just doesn't seem useful to judge Coursera negatively because it doesn't meet an expectation it wasn't designed to meet.

Online course reviews written by current university students should be taken with a grain of salt. "Easy" has a special meaning to bright university students; it means "too many people would pass."

I once had a professor introduce me to a colleague as "He was the A." He seemed to think the remark praised him as much as me. Only in primary schools do you hear a few voices saying "90% of the class should be performing at A level".

I note that this reviewer didn't get full marks (perfect score) in the class. It's interesting to contrast the review, also on HN, from one who did. http://henrikwarne.com/2012/05/08/coursera-algorithms-course...

I read another review by a current Stanford student who complained that the pre-Coursera Machine Learning class was too easy. I wonder how he did? A close friend of mine took that course and earned a perfect score. He didn't complain it was too easy; he went back to his company and started a group to apply ML to their business. Easy/hard is beside the point. The point is: students learn.

Perhaps I've been out of formal education for too long (esp. on the mathematical side of things), but I did find the material quite challenging, more so the problem sets than the programming challenges. Part of that was emotional, I didn't do a computer science degree and thus find this kind of stuff almost... intimidating. It's the sort of stuff that gets asked at 'serious' interviews and thus I've had a sense of it being somehow too clever, beyond me.

It's not helped by posts like this, the arrogant 'oh it was all too easy' tone is frustrating. Not everything in life is a competition, and as others have said, it ought to be about actually learning something, not proving how wonderfully clever you are.

What's particularly frustrating in all of this is that I found this particular course wonderfully lectured, and the material fascinating. Reading stuff like this takes away that sense of fascination at the material and replaces it with a sense of being a not quite good enough participant in a competition I didn't want to be a part of.


I'm gonna back you up here, though from a slightly different perspective. People like you are exactly why this course seems easy for some other people. As what is essentially an introductory course for this subject, it should not be aiming to really challenge the top quartile of the class (or whatever). It should aim to provide the best possible foundation for the next course for as many people as reasonable.

The fact that the course has managed to reach out to all sorts of people (including someone like you) is something that should be celebrated. That it was designed so that someone who isn't 'good at math' (whatever that means) struggled a bit, but still got through it all is amazing. That's something that really makes a great introductory course.

After all, it's stupid easy to make a course hard, or to assign shit loads of work. The real trick is making it just hard enough.

Not to make this too much about ego :-) but I am actually quite good at maths, did v. well at school, did engineering degree, etc. so I'm not sure I'm a great example, rather I am out of practice and not as comfortable with this stuff now as I once was :-)

I didn't read it that way at all. Instead of seeing oh it was all too easy i heard I wish it had been harder; and I didn't see any competitive thread in it at all.

  > I still wish that the course would try to cater for the stronger
  > students as well, so that completing it with a high grade would give
  > a real sense of accomplishment.
Maybe the problem is that you were taking the course as a way to cultivate a sense of accomplishment? Isn't the most important measure the effectiveness with which it helped you develop the concepts and skills the course was targeting?

If you're looking for a hard class, Probabilistic Graphical Models might suit better. The staff says that other than a small portion of the homeworks which they couldn't auto-grade, it's the same material as the real course at Stanford, where it's one of the hardest classes in the graduate CS department.

Yeah. I treaded water in that class for about three weeks before going under. It's a stretch.

I agree. The PGM class is much more challenging than the machine learning and algorithm classes, even though (or perhaps, because) Tim and Andrew are doing such a terrific job with the videos of ML and Alg, respectively. One also notices a steep decline in the number of PGM quiz attempts in the published statistics. However, I think that some of the difficulty of the PGM class should be attributed to the rough edges in the programming assignments. We rely heavily on the forums to collaboratively decipher them (as well as some ambiguous questions on the problem sets). But then, this also shows that Coursera's platform enables positive student interaction...

I probably used every curse I know while working on the 5th PGM assignment, but I am the first to admit that I did learn a lot, and I'm sure they will fix the rough edges for the second run of the class. Moreover, the entrepreneur in me is very inspired to see fresh-from-the-oven code. Sure, I've already seen apps that were lacking some features because they were released fast, but here I have an opportunity to actually see some fresh code (since we are basically asked to "fill in the blanks" in Daphne's implementation). I admire Daphne's entrepreneurial courage to publish something even if is is not 100%.

Also note that the PGM class has many more pointers to recent research in the field [1], which I think the OP would find interesting.

Finally, I think the OP is missing a bit of the bigger picture - comparison of undergraduate studies in Israel and the US. I could probably write a long post about this one day (I've taught science undergrads in both college systems), but at least I should point out a couple of things. In Israel, there is much more focus on the major; about 95% of the classes are in the major field of studies. (One chooses her/his major before applying to college). There are (almost) no GE classes [2]. There is probably no one attending CS classes who does not major in CS (or double major). There are advantages and disadvantages of each system. But as a result, you can put more challenging content into CS classes in Israel.

Therefore, it would probably be more fair to compare a CS class from the Technion to upper-division or first-year grad class. That is, instead of comparing it to Stanford's CS161 (or any other 100-199 classes), it would be more fair for the OP to compare it to the level of CS228/CS229A (or almost any other 200-299 classes).

[1] Not all of these are plugs to Daphne's research- I even remember some pointers to Thruns' papers. (he's sort of a competitor.)

[2] Perhaps this is to allow 3 years college, and save some time we spend serving in the army.

Yeah, after taking ML class I was worried the online stuff was going to be heavily watered down. PGM class has reassured me that even after college I can still feel that "oh shit" moment opening up a problem set and realizing I am in way over my head. Still have my head above water though!

a million upvotes this class is killing me

The beauty of online courses is that people will hopefully have the opportunity to cheaply repeat lectures ad-nauseum until they finally feel they really KNOW their stuff.

This is contrasted to the brutal method of being forced to learn things within a short period of time, often forgetting what you learned or just picking up banal mechanics. The focus shifts back to thoroughly learning course materials.

Online education is a true equalizer.

NB: Been a fan of online education since OCW started up where the costs of the raw material plummeted to the cost of your internet connection.

That's exactly my plan for PGM. If I'd had nothing else keeping me busy maybe I would've kept up, but as soon as I fell behind it was clear I was in trouble.

Coursera's talked about maybe taking videos down for a while between courses, I hope they don't. I'm going to save them just in case, but it'd be nice to have the inline quizzes.

The phenomenon you describe is still ever-present in the online format if you stick to their deadlines. If you ignore them and the associated grade penalties, then ok I agree.

I think the course was at the right difficulty considering that it was an on-line course targeted towards an audience with different backgrounds and skill levels. In fact, in the forums there were a few people complaining about it being too difficult. Plus a course that is not targeted towards full time students can't really have the same effort levels as one that it is. If the course turns out to be too easy for you, maybe it wasn't designed for you.

I don't think forum complaints are a very god indicator of the overall difficulty. Across all the courses these last couple months there have been a huge number of posts about X is too hard, I'm giving up, "y dunt pr0f mek qestuns ezr?", etc. For the most part they are all in the nature of people who aren't at all invested in their work but feel inclined to voice their problems, sometimes as a complaint or sometimes as a mild attack. I do occasionally go on the forums to answers people's questions but never to ask unless it's a site-specific bug– I'd rather ask someone at school or work, reddit, HN, whatever. What's unfortunate for the professors (or rather, whichever TA is putting together the report on user feedback from the forums) is that their sample will be biased towards people with no background, less resources, etc. It's not necessarily bad as long as they account for it, and I'm sure it's something they think about in terms getting more of the able students to stick around (like in some of the conceptual/theory/adv. topics subforums around).

So I know you're not really arguing here but I just wanted to put that out there since you mentioned the forums. Carry on!

Great point. The quizzes and exams should not be hard, they should re-affirm your knowledge and let you move on. Making at test difficult for the sake of being difficult is not productive. People are learning this material to better themselves. If one wants difficulty one should dive deeper into the material elsewhere. Maybe Algorithms 2, or maybe a more advanced book altogether.

I suppose one option would be to also have optional homework for those seeking additional challenge?

There were some optional theory questions (ungraded) which were more challenging and could be discussed in the forums.

I'm glad you found it easy. Personally, I found it very challenging: although I thought I matched the requirements for mathematical background that Prof Roughgarden outlined in the intro lecture, it turned out to be a struggle to keep up with some of the concepts when it came to apply them in the theory questions.

The programming exercises were fun, but I don't think they were really the point of the course - this "part 1", at least, was much more about analysis than about design.

As a contrast, I've just started their compilers course: there the theory questions are slightly easier, whereas the programming questions are much more involved - the first one has already taken me several hours and I'm nowhere near finished.

You took a class called "Design and Analysis of Algorithms I" and complained that the problem sets were too easy. What were you expecting?

thanks for the retrospective, eli.

we have a wide array of students to cater to and better setting expectations and providing challenges at the right level to the right students is something that we hope to iterate on and improve over time.

I didn't catch algorithms but am dipping my feet into automata, logic, compilers and machine learning right now. I'm going to have to drop compilers and machine learning because it's too much work for my schedule right now but I will still follow the lectures. It's a mixed bag, I must say. The user experience of the website itself works a charm. The classes themselves, not so much. After being addicted to khan academy for a while and trying udacity, the dryness of the coursera classes feels like a big setback. I am watching the same slide for 2 minutes while a teacher throws a lot of technical lingo at me and the only way it feels like an improvement over a brick and mortar school is that I can rewind until I've figured out what he is trying to say. This is in opposition to other courses out there which do involve you strongly in ways that are more suited to the medium. I have no complaints about the difficulty level - I do, however, with the deadline system, since a lot of people taking these classes (including me) don't have the flexibility to spend the necessary amount of time every week, and once you are one week behind unless the class is under your level it's hard to catch up.

It was a very well designed course and Tim is a fantastic teacher. I scored a 100 but I wouldn't say the course was easy. For the most part, it was obvious. I found some of the questions slightly tricky and I would have got it wrong if I hadn't taken the time to read/think. Overall, I'm extremely happy with the time spent learning from Tim.

That said, if you are looking for really hard challenges, you should take Daphne Koller's Probabilistic Graphical Models.

"The exam included questions from the lectures" When I was a student I hated this practice from some professors.

I used to do this to put in at least one or two softball questions. It helped to weed out who was paying attention and helped when deciding if someone should get a C or C+.

You shouldn't be grading then. They are not taking a class in Paying Attention, they are taking a class in algorithms. If they know the material, that is what matters. I also cannot stand this practice.

And people who know the material should be able to answer those questions without any difficulty. What's the problem?

I'm assuming the problem is questions like this:

  Recall the Master Method and its three parameters a,b,d. Which of the following is the best interpretation of b^d, in the context of divide-and-conquer algorithms?
Alternatively, the problem might be questions that ask for the state of an algorithm at some point, when the algorithm can be correctly implemented in different ways and one is expected to recall/go back and check the exact implementation used.

Those kind of questions should be taken out back and put out of their misery, but I don't think there's anything to suggest that adestefan was asking those kinds of questions.

Yeah, look to Bjarne Stroustrup, he gave all of us C++, no questions asked.

If you were looking for harder problems, I would suggest buying one of the books recommended on the home page. Kleinberg & Tardos Algorithm Design for example was used in an algorithms class I took, and the questions after each chapter were used for both homework and exams. I found them very challenging.

I imagine that they are straitjacketed by the current technology that is available to auto-grade the assignments. But I bet this situation will improve with time.

You took a class called "Design and Analysis of Algorithms I" and complained that the problem sets were to easy. What were you expecting?

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact