Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Stanford Free Classes – A review from a Stanford Student (pennyhacks.com)
214 points by brudolph on Dec 28, 2011 | hide | past | favorite | 102 comments


It's been over twenty years since I finished college. Last year I did a "certificate in quantitative finance" at UW which -- like the Stanford classes -- were both online and seemingly aimed at working professionals. It's interesting to compare these on three fronts:

1) The amount of rigor and work required for the Stanford classes was significantly less than the UW classes. I spent as much as 10 hours per week on the UW homework in addition to the 3-4 hours of video lectures. That's against about an hour for the Stanford homework and another 60-90 minutes for the lectures. I agree with the OP's description of the ML homework as starting out at a decent level of difficulty and quickly becoming trivially easy.

2) I found the format of the Stanford lectures considerably easier to follow. By making a canned recording, there's a huge amount of dead time which can simply be edited out of the lecture. That plus the ability to watch at 1.5x speed meant that I was rarely tempted to do something else at the same time as watching the lecture -- something which frequently caused me trouble with the UW classes.

3) The UW classes were something like $3500/course. If my employer hadn't been willing to reimburse me, I wouldn't have taken them.

All-in-all, I think the Stanford classes are great experiments in which I'm happy to participate. I'm planning to take five of them in Jan-Mar.


Were you a quant before you took the UW classes?


Nope. My background is in engineering so the calculus wasn't an issue, but my stats knowledge was really weak.


I'm interested to know if earning that cert from UW allowed you to jump in to the financial sector. I'm currently pursuing a similar path and would be interested to hear about your experiences.


There are two goals with learning ML:

- Applying known ML algorithms to a real world task

- Coming up with new ML algorithms and research

It turns out (ahem) that the first goal, applying ML, is not only much, much higher in demand than the second goal, but is also much, much easier to teach than the content required to pursue the second. This dichotomy is the reason the split between CS229a and CS229 in both content and audience works so well. The demand for CS229 is low and the rigor is high (so it should be priced high), and the demand for CS229a is high and the rigor is low (so it should be priced low.) The author signed up for the wrong class. I think Stanford is teasing out subfields of CS that have this quality, and there sure are many.


I'm sorry if I made it confusing, but it really isn't about whether I signed up for 229 or 229a, the point is most of my classes for the coming term are now under this new online format and it would be shame to see them lower their standards to fit the public.


It's a good point -- I guess we'll find out next semester if the difficulty being below average had to do with the nature of the class itself (the a in 229a) or the audience it was being developed for. I hope, if the classes you mention are listed under the same course number they always have, that the difficulty won't be less than usual.

For the rest of us, what classes are these? Part of the reason an easier class is better for the public is because there's just less time for working people. If the difficulty/time commitment for the offered classes next semester are substantially more than 229a I'd imagine you'll see a much higher dropout rate not due to lack of ability but due to lack of time. It seems odd Stanford would try to pack a "real" course into the online/public format, but at the same time seems odd they'd dilute a "real" course for their undergraduates.


The easier assignments are easier because they now have morehints alongside.

this i guess is not to ease for lazy slobs (what you described :) but to ease the demand for help on the staff.

The critic is that they overdid


I agree, but would prefer to keep the standards high for the public rather than see the courses separated. I enjoyed the first few ml-class lessons, but I quickly became bored with the difficulty level.


But should classes be hard for being hard's sake, or should they be hard when learning the material requires it?


The secret is: This Is The Internet.

There's no reason a class can't have the same material presented two (or three or twelve) different ways for multiple audiences.

There's no reason a class needs a "start date" and an "end date." We can grow classes to be about communities, not authorities. None of us are as smart as all of us.

We shouldn't copy the Boring Ole' Lecture Format (and especially not "camera up my nose while I write on paper") when we could be doing so much more.


You're right, and I hope we'll see more innovation in this area, but I don't think it's reasonable (or a good idea) to expect Stanford professors to try to attack two very hard problems at once at this stage:

- Scale traditional educational techniques (lectures, homeworks, schedule) to a class size of 100,000 people

- Come up with an altogether new way to teach and assess students by taking advantage of the web

It's probably a good idea to figure out the bugs in solving the first problem before tackling the second.


I disagree. The start/end date concept facilitates working together with others in a study group setting. Everyone is at the same part of the class, and you can benefit from learning together. Finding a real-world study group for material with no start/end date is significantly more difficult. One of the best ways to learn is to work through material with others in a group.


If the lectures were coupled with wiki-style video annotation, over time people could curate Q&A. This would be fantastic study material and it would be embedded at the most relevant moments of the lecture. It would get better with each new question and would be available to everyone forever.

So - people still learn together, just not necessarily concurrently.


Except Nikola Tesla. All of us are still not as smart as Nikola Tesla


I disagree. This class was very easy compared to other courses in the department. There's no problem with the class not having a theoretical focus. However I do think that it is bad to have assignments/quizzes that require no critical thinking and programming assignments that can be done in 30-40 minutes. There is a lot that can be taught in the area of applied machine learning.. I have to disagree that applied machine learning is inherently an "easy" topic.

I think this course would be great for what it does if they made the programming projects a bit harder and maybe labeled it an intro level course (CS129?). I totally agree with the posters sentiments -- I'd much rather have a harder class where you interact with other students to learn more complex material.


My impression was that the course was designed to give someone with little or no background in machine learning a maximally useful amount of practically relevant information given a multitude of constraints (ergo the focus on Andrew Ng's favourite implementation tricks of the trade, learning curves &c.; each of dozens of such nuggets having the potential to save days, weeks or even months in real projects).

If that was indeed the goal, the endeavour should, in my opinion, be considered an amazing success.

An easy way to make the assignments harder (and maybe more fulfilling), if you have the time, might be to ignore much of the handholding (e.g. by porting everything to a very different programming environment).

Ideally, online courses like that would be "infinite" and personalized, giving everyone as much depth (and breadth!) as desired (with a "baseline" approximately equal to the 2011 class) and taking existing knowledge into account.

Eventually, we'll all get our Primer!


I'm not sure I understand how opening up classes to the online world would would affect the coursework of Stanford students. If the author felt that CS229a was not rigorous enough, he should have just taken CS229 whose problem sets could double as full-time jobs.

Morever, a good chunk of stanford CS classes are already offered online through SCPD (the professional development system) and as far as I know, the structure of those classes remain unchanged.


I took CS229 at Stanford.

ml-class.org does a phenomenal job in equipping you with the practical knowledge needed to apply the tools of machine learning to real problems.

There is no reason why learning to use these tools should be hard. If you want a challenge, there are plenty of problems in the world amenable to solution via machine learning, especially in today's data deluge.

If you want a deep mathematical appreciation of the algorithms and their derivation, you should do CS229, not CS229a.


For those who tldr;

The author should have taken CS 229, but instead took CS 229a and was disappointed. He then overgeneralizing from his 229a experience about the future of Stanford CS education.


Put down the pen. MIT, Stanford, et.al. have already done the math on this.

20,000 "certification" exams @ $99.00 each is not insignificant. It's just shy of 40 full-time students @ $50,000 per year.

Heats a lot of buildings.


The economics of online education seems very similar to those of TV and software industries: large one time expense on content development, global winner takes most competitions(for courses taught in english), brand names are important.

This may lead to dumbing down of courses(to an extent) to get more users. But sure, they don't want to harm the main business.


Principles be damned, there is money to be made!


I don't mean to imply that schools should be in it for the $$$. I get your point. But costs are an issue. A big issue. And right now student tuitions shoulder a large part of that burden.

Stanford's total enrollment is about 20,000 students. $35,000 per year = $700,000,000.

Offer 16 new online courses which yields 20,000 students per course taking a $99 final exam. $31,680,000. Less than 5% of annual tuition-based revenue. That's a new library without hitting the endowment fund, underwriting existing salaries, funding pension obligations, or adding a new facility dedicated solely to the production of online educational content.

I think Leland and Jane Stanford would be proud to know that the memorial they built to their son is today moving in the direction of educating millions worldwide.

It's okay to "be strong and stay strong and while being of benefit to others."


The problem is providing a questionable education and then selling a meaningless certification to make money.

These classes are also highly vulnerable to cheating and you can be sure that a large number of people will take advantage of this to pump up their resumes.


I think that's why MITx plans to use a third-party for their certification exams. Similiar to testing centers for standardized exams like the LSAT, GMAT, GRE, etc.


Pulled the numbers from here: http://ucomm.stanford.edu/cds/2011.html


Really principles be damned, they are doing it for free


I took the AI class, and I also saw a degradation of the difficulty. At the beginning it was great. I even undusted my old 48SX, and had lots of fun: they actually made me think. But some of the lessons towards the end were almost a joke: I sure don't need to spend time applying a trivial formula back and forth, as we did in the computer vision lessons (deriving it would have been a slightly more interesting exercise.) I don't know if Stanford students were paying for this, but I'd not be very happy if I had.

On the other hand, I am very happy that they are doing it, and I intend to take as many as my time will allow. And I wish they'll figure out a way to charge a small fee for having "Stanford" in the title in some manner, so that they don't have to spend about half of the certificate of accomplishment making sure that everybody understands that this is _not_ an actual Stanford certificate.


As a stanford CS grad myself, I basically concur. I took this class as a refresher for things I learned back in school. It was perfect for that. But the rigor and difficulty of the class was clearly tailored towards someone like me, who wanted to watch lecture videos over dinner for a few hours a week, rather than a full-time student.

I actually wasn't aware that the online class was being offered for credit in the CS department until reading this. It surprises me that they're doing so.


I did the AI class and that was not the case. Stanford students were clearly separated from the online students. We didn't get the same assignments neither.


I took CS221 last quarter. So I can say that you got the same assignments and exams; you just weren't required to do the programming assignments. While ml-class was perhaps the third iteration of putting the machine learning class online, ai-class was probably the first time someone tried to put CS221 online; the professors simply felt that they wouldn't be able to automate the assignments in the time that they had. In fact, many of the YouTube lectures, which many Stanford students seemed to prefer, were often not available to us in time for the assignments and exams.


My degree is in Fine Art, and I thought the class was pointlessly easy. Fix the class in two easy steps:

Lecture live, record the lectures. EVERY speaker is more effective when they have the feedback of their audience's faces.

Expect the members of the public to meet the class' standard, don't shrivel the curriculum to match the public. An applied CS course that doesn't demand programming is bizarre. Flunk everyone if you have to. Grades should perhaps reflect understanding?


I could not disagree more. I have an MIT degree, and I thought it was remarkably refreshing to have the difficult made easy, rather than vice versa. Not that I have huge complaints with my MIT education, but having taken some classes at Harvard too, where the emphasis was sometimes different, I can appreciate that there's often a great deal of value in a class that can draw people in and make them interested, rather than send them fleeing in terror. Personally, I thought that Prof. Ng's lectures where brilliant in their ability to make difficult material completely approachable.

I do think that he occasionally would belabor the obvious, but for the intended purpose of the class, I think that it is better that he erred on the side of being too clear, rather than on the side of being opaque.


I agree totally. The first two sins of education are making simple things complicated and making complicated things simple. Ng was clear, and that is commendable. My concern was not based on how difficult he made the material he presented seem. I was concerned that he did not present more difficult material.

Vocabulary is very important. But in addition to knowing the meanings of words, its important to know why concepts are carved up the way they are. Why divide the world into supervised and unsupervised --- what does carving at that joint win us?

Getting people interested is what the first week is for. The other eight, I feel, should try to satisfy the curiosity the first week sparked.


Vocabulary is very important. But in addition to knowing the meanings of words, its important to know why concepts are carved up the way they are. Why divide the world into supervised and unsupervised --- what does carving at that joint win us?

I'm not sure that I get you. Why we have both supervised and unsupervised algorithms was made pretty clear to me in the class. And just what more difficult material would you have liked to seen? The real Stanford class is made more difficult largely by doing lots of difficult math proofs. I emphatically disagree with any assertion that this free class should be so math heavy. What would be the purpose of that for the intended audience? Sure, such work would make fine extra credit, but making effective use of algorithms rarely relies on on a ability to mathematically prove that they have the properties that they do.

I think that a big final project, as is required in the real Stanford class, on the other hand, would have a lot of utility for the intended audience. But as that would be impossible to automatically grade, that's a non-starter.


I agree with you that doing proofs isn't the most important thing --- though I might not be so adamant about avoiding it.

My own experience with ML is so narrow, it's hard for me to say what else should have made an appearance --- I made up the example that you rightly called me on. I worked with a research group on a reinforcement-learning system with a silly name, and we used a whole messy pile of linear algebra. I guess I shouldn't have expected to recieve the same kind of grounding in all the ML topics.

I agree that projects would make for a huge improvement. They are difficult, but no more difficult than they need to be, and practical. You're right, grading 20,000 of them would be madness. And maybe that's OK --- what's wrong with assigning work that won't be graded?

(OK, there are lots of things wring with it, starting with motivating the student to do the work, and ending with the lack of quality feedback. But even suggesting projects for self-directed students might be enough to get a blog-ecosystem going.

I don't know much about pedagogy --- I'll talk to some people who do, and maybe they'll dope-slap me into agreeing with you totally.)

But I don't think we disagree particularly -- math should only appear when necessary to understanding. Easy things shouldn't be made difficult just for the sake of some kind of scholastic masochism. But difficult things should be attacked with vigor, and not nerfed for the sake of the audience.


Now that I think about it, I do think that I heard somewhere that the free AI class has a final project. IIRC, it's a "challenge" that is the same for every student, and the solutions are ranked by how well they solve the problem according to some metric that can be measured automatically. Kind of like how Netflix set up a challenge like that with a million dollar prize, only in the AI class there was no cash prize. (I hear that they did send out requests for job interviews, though, as rewards.) This actually sounds like a great idea to me. Topcoder for AI. I'm sure something similar could be devised for the Machine Learning class. Now that I think about it, I'd actually be pretty surprised if they don't do something like this for future versions of the class.

I've heard some people complain that the programming assignments in the Machine Learning class were too easy. A specific complaint is that they provided all the equations and explication you needed right in the homework statement rather than having to remember it from the lectures. Personally, I find this approach to be the best way to learn. My favorite approach to learning has always been "workbook" based, where the lessons and problems to solve are in self-contained lessons. Give me material like that and I can learn anything. There are entire classes at MIT that I did extremely well in because they were workbook based. And I took Organic Chemistry and got an A+ in the first half of the class because it was workbook based. They thought I was a genius. Then the second half of the class used the more traditional approach of reading 100 pages a week of terribly boring and dense textbook. I got a D- in that half. Fortunately, it averaged to a C and I passed the class, but if the entire class had been workbook based, maybe I'd be doing something great with Computational Chemistry at the moment.

Back to the actual ML class, I've only completed the first few programming exercises as of yet, as I was also taking the database class, which actually turned out to be a lot of work. I've heard that in the ML class, the programming exercises become progressively spoon-fed, and ultimately not much of a challenge. That's not good, if true. While I do think that all the information you need should be at hand, you should still be given challenges that make you think. All the thinking should not be done for you.


I completely disagree, recorded lectures are nowhere as nice as the stuff that kahn and stanford are pushing out.


Fair point. I admit that Khan does an incredible job. I believe it [lecturing to a microphone] is an extremely rare and underdeveloped skill. "EVERY" might have been hyperbole.

But when the lecturers at hand are professors who have spent decades teaching to a room full of students who become visibly impatient, confused, eager, or antsy --- they should keep doing that.

To keep a pleasant rhythm to instruction, many professors tell jokes; I think it's VERY hard to tell a joke to a webcam when you are used to an audience.


If you were looking for recorded lectures, why would you take the CS229A online course? You should take the recorded CS229 course : http://www.academicearth.org/courses/machine-learning


I felt similarly dismayed about a machine learning course which doesn't demand knowledge of calculus.


I disagree I do not know calculus and would not have done this class if that was the case. I am now implementing ML in my day to day work . Anybody can make ML difficult , the greatness is in making it easy for people to use it and that makes a real world impact IMHO


and I believe this "Anybody can make ML difficult , the greatness is in making it easy for people to use it" is the real deal.


Wow. They didn't require knowledge of calculus? I took the actual CS 229 at Stanford and a class that doesn't require calculus at all would only be able to touch on a small fraction of topics.

My worry, which is similar to the worry of the student in the linked post, is that these lectures may be devaluing the in-person versions of the course. CS 229 was one of the top 5 hardest classes I have ever taken. I would rather not someone else take it via a dumbed down online lecture and say "I did that too! It wasn't so bad!"


I took the free class, and have looked at the material for CS 229, and there's no way that I would ever claim that I had mastered CS 229. CS 229 looks to be brutally difficult, and I have an MIT degree. Yes, we had our brutally difficult classes too, but I'm not particulary enthusiastic that some of my MIT classes that were so difficult. I think that I could have learned just as much if I had had more time to sleep.

There was one "brutally difficult" class at MIT that I loved, though: Structure and Interpretation of Computer Programs. It would be nice if all brutally difficult classes came in a less brutal version, though. That level of difficulty is great if you adore the subject matter, as I adored SICP, but if you only like it instead, this type of class can give you a permanent aversion for the material rather than transform you liking into love.

I feel that MIT's Signals and Systems did this to me. There's no way that having to do ten pages of algebra (e.g., Laplace transform, inverse Laplace transform, simultaneous equations) to solve a single homework assignment, multiplied by ten for the entire problem set, was ever going to do anything but give me a permanent aversion for the subject matter.


I totally agree. I felt a number of the Master's level CS classes were more like hazings than classes. It was like some professors were most interested in making their particular field of interest seem insanely difficult at the expense of students comprehending the material. Or alternately, some profs were primarily concerned with creating material difficult that most of the students would falter, and it would become clear who the top 3-5 students are. Then they would know who to invite to their research group. Neither of these made for a particularly fun experience.

But at the same time, some of the classes had very difficult subject matter and the professors were actually interested in teaching students instead of torturing them. So it wasn't totally a bad experience.

I guess there is some value in having these online classes because they motivate professors to make their subject matter more palatable. I just don't want my degree devalued by people who aren't as astute as yourself when it comes to the gap between the online courses and those taken by Stanford students.


I just don't want my degree devalued by people who aren't as astute as yourself when it comes to the gap between the online courses and those taken by Stanford students.

I can certainly understand this worry, but I don't think you really have to worry too much about this. Those who matter will always know the true value of a Stanford education. It's not quite as good as an MIT education ;) but it's right up there.

When I worked at Harvard a few years ago, there was a tempest in a tea pot over Harvard Extension and Hillary Duff. The media got wind that Hillary was taking some distance learning classes via Harvard Extension and referred to her as a "Harvard student". Harvard Extension is an excellent institution, and Harvard should be commended for running it, but it is rather different from Harvard College and Harvard Graduate School of Arts and Sciences. Harvard Extension, for instance, has no admissions requirements. They accept everyone, but you can't stay in it unless you get decent grades.

In response to the news stories about Hillary, The Crimson published an editorial that was extremely snide about Ms. Duff being a "Harvard (extension) student". This editorial did not make the undergraduate population of Harvard look good. It made them look like a bunch of unsympathetic brats. Sure, it might be a bit annoying if you feel that any ol' person can claim to be a Harvard student when you worked hard your entire life to get into Harvard. On the other hand, when it matters, there is unlikely to be any real confusion, and there is no real devaluation of a Harvard College degree.

It is true that some people do through a bit of vagary to pass off their Harvard Extension degree as a Harvard College or Graduate School degree, but when you catch someone in this, it just makes them look rather bad.

In summary, I hope that Stanford students don't make the same mistake that the Harvard Crimson made. If I didn't know a bunch of Harvard students personally, the Crimson article would have reinforced a bad taste in my mind about Harvard students in general.


The classes were presented as being the same as Stanford classes, and in the AI class one of the professors claimed to be surprised that the online students were doing better than the Stanford students. As if the comparison was valid based on the difficulty of the material.

You can't make those sorts of claims and at the same time try to protect the reputation of the institution by saying that the online class is not as rigorous as the "real" Stanford class.

There's some actual danger in devaluing Stanford's rep here.


I took two of the classes and they never once claimed that either of these classes were the same as the Stanford class. In fact, they stated several times that they were not the same, and made it quite clear that you would not be getting Stanford credit of any kind for the class. For the database class, I did receive a "letter of achievement" or somesuch from the professor, but it was a letter from the professor and not from Stanford. For the Machine Learning class, I didn't even get that.

In the database class they did say that this class wasn't terribly different from the real Stanford class, but that the Stanford students would probably be assigned a bit more of the problems that were particularly challenging. Those questions, however, were pretty much the least valuable questions in the entire class, since they had little relationship to any kind of query you'd ever use in the real world. I.e., they're the kind of question that teachers like to put in there so that you can have a more distinct grading curve. In any case, the database class was a fair amount of work, so I don't think that it is likely to make a Stanford education seem too easy.

The Machine Learning class, on the other hand, never made any claim at all of being remotely like the real Stanford class. Their only claim was that it would give you a good foundation to use Machine Learning techniques in the real world. That is a completely true statement. As it turns out, however, Stanford did offer the free Machine Learning class that I took as a real Stanford class for those at Stanford who wanted an easier version of Machine Learning.


He says:

"Stanford “free” classes aren’t free. Stanford students have to pay for them. The fact that I’m paying for them doesn’t bother me, the fact that people who aren’t paying for them have changed the class more than the ones who have, does."

which does seem to be a forceful point. However, checking the FAQ (http://see.stanford.edu/see/faq.aspx#aboutq2) we find that they are funded completely from outside sources. So this guy didn't even bother to do some basic Google checking.


As far as I know, the Stanford online courses are NOT the same as the ones listed on the SEE page.

They seem to be two different initiatives. I know for sure that the ones on the SEE page are recorded video lectures from the actual live classes.


Perhaps some of the funds raised for these open classes could and would have been raised for other projects relating to proper Stanford students ?


According to the website http://cs229a.stanford.edu/ there are class meetings, according to the blogpost everything is done solitary?

Another difference with the course offered to the public is that there is an open ended project.

If he really wanted a harder class, why not take CS229 and not CS229A...

If you want something to be harder, to get more out of something you should pursue it yourself, not depend on others.

I see (online) education as a guide, not as the only source of input. Selfstudy and initiative is the most important thing.


Class meetings were optional (which I did attend) and only a fraction of the students actually attended. I don't have a problem with cs229a being easier than 229, but the thing is a lot of other classes have now turned to the online format with no alternative (like 229 to 229a). Selfstudy is great, but sometimes the best way to learn is from a structured class.


<i> Selfstudy is great, but sometimes the best way to learn is from a structured class</i> Well lots of people might like to be treated like grown ups and not like the structured classes and who knows they might even write a letter asking for refund


I'm surprised you think being in a structured class is equivalent to being treated like a child. What school did you go to that did this?


I do not think structured classes is equivalent to being treated like a child.

It was intended as a general comment that some people might not like it and equate it like that based on his comment that only a fraction people actually attended it and maybe if it was made compulsory they might not like it and there is a probability that they will say that.

Just a point that what ever you do there will be some group that will not like it .


Hasn't education always been about providing systems that encourage people to challenge themselves and learn difficult things (and signalling)? I am sure that it has always been possible to go to the library and learn almost anything you might to. And, the internet has built upon that capability. So, its legitimate to criticise a class for not challenging you or not supporting you.


You say encourage to challenge themselves (Internal) and then say the course must challenge them (external factor). In any course the basics are thought and the student must take it on themselves to learn more and ask when they do not understand. If you have played any sport the basics are easy but you spend time and practice so if your coach says hit the ball from 10 yards and if you feel that is easy you can move back to hit the ball from further why do you expect the coach to tell you that.You can ask the prof for more complex examples or use the homework in a real world example. This seems to be a case about he gets the same marks as me and I know a lot more than him.


I was MS CS at Stanford, and I agree with Ben's sentiment. I took CS221, and checked out ai-class for fun, and knew several people taking the on-campus version of CS221 this quarter. The short of it is that the online version is essentially the same as the on-campus version, and both fail to adequately prepare a student for further study in AI. It's great that Norvig and Thrun are willing to present this survey class to the public, but not at the expense of students who are actually in the classroom at Stanford and also footing the bill for this grand experiment.

Yes, the class was a fun introduction to AI. But no, it did not offer a deep and thorough theoretical foundation that I would expect from a Stanford class.


I think there's a great opportunity to take online classes to the masses without sacrificing the quality of a brick and mortar education. These classes don't need to be offered free, just cheap. If they charged $10 for the whole class (a steal really!) they'd make $1,000,000 a semester per class. That should pay for the bandwidth, and teacher, and material. Scale that to less niche classes, you have a real business! I'd personally pay $10 for a class, even if it did not qualify for credit.


I think your math is a little off, 100K signed up for the AI class, only 40K actually turned in a HW, guessing that less than 20K actually finished,

guessing none of the classes this spring will have anything close to that enrollment


This was an initial experiment so I am pretty sure they will change the format a little bit later. lots of people signed up for all the classes and it was difficult to do all the three at the same time but if given the option of doing it at your own pace I do not think it will go down.


You pay at the beginning. Whether you finish or not does not change how much you make.


If you had to pay up-front (even $10), they'd probably have gotten <1000 signups.


It's unclear to me if this guy didn't learn enough or if it just wasn't hard enough. I do personally think that some courses are hard for the sake of being hard. If he learned the material stated in the syllabus and it was easy, then that's a really great thing and a tribute to the teaching.


Some courses are hard for the sake of being hard, because they are intended to filter out students who can't hack it. The degree is proof that you had the intelligence and determination to earn it.

When you're not awarding a degree anyway, that consideration is irrelevant, and the only requirement is to teach as clearly and effectively as you can.


This post needs a comparison with CS229a prior to the online courses. Was the course harder before online classes and then got significantly dumbed down? Or was the course easy enough that it was a good candidate for the project?


CS229a didn't exist prior to the online courses.


Then it seems like there isn't so much a problem and the course is plausibly performing its intended function. Obviously the course was designed by Stanford to fill some role; unless you think that the course had a design flaw only detectable once it got rolling, then the best assumption would be that your expectations were wrong.

Of course, you could certainly have asked, as a Stanford student, what drove the design of the course and how the professor actually felt about the execution. That would have been an interesting follow up.


This kid's a...kid, I guess we shouldn't expect a long view from him. What he sees as a slippery slope is a normal part of education that's hard to spot if you're only in the system for four years.

Professors have been complaining for decades that students don't start their classes with the basics already down. Making a video version of this class, even one that only teaches the first half of the real class, means the professors will start to expect the students know that part already and the real class will expand to include even more advanced topics.

There's no danger of Stanford or Harvard or MIT or anyone else making things easy on their undergrads.


tldr; The experts make it look impossible but the masters make it look easy and actually teach you

Just ranting out here so feel free to ignore :-)

This is not really aimed at the author but towards the "elite" group. There was another elite commentator in one of the other thread who said he dropped out of ML class because This course included gems such as "if you don't know what a derivative is, that is fine" and he thought math was important in ML. Before the ML class I could not even argue with these guys because I did not know squat about AI and talking to these experts their advice was to take a year off and learn math and then start learning AI which in my case was not possible. Today after a couple of months of online classes I am actually using ML in my daily work and its not magic that only the elite with deep profound math knowledge can use. Another programmer who is working in khan academy actually had a blog post about how he implemented ML by learning from Prof Andrew's class now that is real world impact. I may be missing something but can one of you experts please explain why you need deep math knowledge when the professor who has been doing a lot of research in this field a lot more than you does not think so ?. The professor in his classes keeps reassuring that even after using it for so many years he has difficulty in the subject but I'm guessing these experts know it all :-).

This is the reason in my opinion even though wall street is full of smart people they do not care about the rest of the population or the general masses the attitude is we are smart and we can do what we want you guys are dumb and deserve what you get and if someone outside of their elite group starts talking their language they do not like it.

On a similar note when you look at the people complaining about khan academy most of them are these so called smart people.

Let me talk about my background I have been working as a programmer for around 11 years , no math background though thought myself math by using Khan academy and before my layoff (now am working on my own startup ) used to make 90K (in a southern state).

So guys you are not the center of the world we are crashing into your fraternity you are no longer the only experts who can talk about ML , the guys at stanford are smarter than you and know what they are doing and FYI they don't need you its the other way around. Another interesting thing is that mostly the current students seem to agree with the author, If you are smart you should probably take the effort to learn more rather than asking them to tailor the classes to what you think matters . Also ask yourself this question if you were the Professor what do you think is more satisfying teaching 40 full time students or 20000 who are in the field already and make more impact in the field ?.


Sigh. I disagree.

It's not about you. Math does not exist to exclude you. People who use math are not trying to exclude you, they are just trying to make their jobs easier. Math can be just as accessible as this ML material when taught properly.

If your point is that more effort needs to be made to teach advanced topics in accessible ways, well, duh. That's a straw man.

I'm sorry that you feel so alienated from institutions like Stanford that you feel the need to compare their students to "wall street elite" that "do not care about the rest of the population" who "deserve what they get" for "being dumb." I think this rhetoric is out of line on HN.

If the author wrote, "CS 229A lets in the riff raff, I don't like those people" then you'd have a point. But that's not what he wrote. He's simply looking to learn more and get his money's worth. As others here pointed out, he probably should have taken the full CS 229 instead.


Agree.

A lot of the things I've learned in AI class are pretty darn simple, once explained properly. So far all this knowledge has been hidden behind jargon and badly defined notations. IMO, the guys at Stanford are liberating it.

Moreover, this is the first time in my life I'm actually seeing a practical use for things like derivatives in programming I can relate to. Sure, I know there are, theoretically, lots of different applications, but I've never seen them since college. Seeing an example of a practical application makes me more interested and more likely to deepen the knowledge of the underlying math.


This could just be an expectation problem. I think most of these free courses have that 'Applied' stuck infront of them, ok, fine. But for my education I want rigor. I don't want to just know how to use something, I want to know how the guy who came up with it figured it out and I want to be bale to prove things about it. Not having to know what a derivative is does not fit this. I don't think it's a matter of the elite thinking only elite people can grok something like ML, it's a matter of that they expect the dirty details and are annoyed when they don't get it.


I know ML and have a math degree; I don't see why you'd need to know what a derivative is. If anything, I think exposure to ML and functional programming before differential calculus could be beneficial since you'd better appreciate that differentiation is just one special application (no pun intended) of the concept of higher order functions.


If I recall, solving back propagation in multiple-layer perceptrons was an unsolved problem for some time, and the solution relies pretty much solely on partial differentiation. I don't know much about ML but things like neural networks were pure mathematical constructs before they were CS topics. I agree with the GP, though, you don't need to know the actual math for most of this stuff.


On the point regarding the necessary knowledge of maths for ML (or indeed statistics which is the same material but a slightly different focus), I'm conflicted.

Coming at it from my perspective (learned a lot of math in high school, forgot most of it until I started a PhD), i would agree that a lot of the time, you don't need to understand the mathematical underpinnings of this stuff. That being said, as I've learned and remembered more of the math, my capability to understand (and debug errors) of all of this has increased tremendously.

I do think, if you intend to use ML every day, then you need to commit to understanding everything you use within a certain time frame of you beginning to use it (ideally immediately but that's often not possible). Anyway, derivatives are cool, and transform the way you look at the world, so you should definitely learn some of those.


Well for example take the least squares formula \theta = (X^T X)^{-1} X y. You derive that by setting a derivative to zero, and solving for \theta. If you don't know what a derivative is, then you're just using an equation that came out of nowhere and that you don't understand.


If you want to know how the guy came up with it , do you think someone taught him that or he delved into the topic deeper by himself and figured it out .The professor makes it clear that you can do the derivates if you know so I do not understand how the course would be better if that was given as a assignment. Also if the professor thought the same way why would he want to teach a class instead of working for a bigco or a research firm ?


Of course the guy who came up with it taught himself, there was nobody to teach him. The point of a college is to speed a lot of this up, though, and tell you the results these people got and how and the implications. I think you're drawing a bigger contrast between what we said than I intended. I'm not saying that Applied courses are wrong or should not exist. I have taken several in my day because I just don't have the mental discipline to learn a lot of theory all the time. What I am saying is that I don't think really smart people complaining about not getting enough out of the course is not a matter of them thinking they are elite but that they just want more and don't see the point in wasting time on something that won't give it to them. My favorite classes in college were always the ones that required a lot of theory and a lot of rigor because it brought so much more together for me (even though I often didn't really understand it), I think a the elite you speak of probably have similar feelings.


I am not one of the elite. I had to drop out due to a not simple life. So I think I can offer an outside perspective. I did teach myself a lot of math to be able to understand machine learning. I did not read ahead, that is boring. But I found that as I went along, the more I wanted to tune the algorithm beyond the standard fare, the more power I wanted, well then the more math I had to read and understand. I simply was not satisfied to write decision tree code without understanding how. Or if you read a paper and you want to implement something you will need to be able to understand the math hiding the ideas because the pseudo code is often rubbish and bugged - assuming its even there at all. I did this to implement matrix factorization, to extend logistic regression beyond binary and with sparser weights, SVM etc.

And then something began to happen the more I learned. I no longer thought I need naive bayes this, Decision tree that, random forest there or whatever. I thought I need this concept from statistics or that idea from information theory, i just need to group and count there and that loss function is useful here. So I could come up or modify something to my need. As I go long I am finding that while before I looked for an excuse to use something fancy sounding now I prefer to go as simple as possible - but without having gone through the hard stage I could not appreciate where the simpler solution is better.

I also learned a great deal of differential calculus when implementing an automatic differentiator (a backpropogating Neural net is basically just a special case of reverse auto diff). Its fast can work with decent sized vectors (10^5 - 10^6 entries I tested) and can do gradients, hessians and jacobians of arbitrary functions. I also expect that I can easily extend it to be able to work with tensors although I haven't needed them yet. Using it I wrote a stochastic gradient descent algorithm and can plug in arbitrary loss functions and a whole bunch of algorithms just merge. I could also easily write say L-BFGS for it. Neural networks, logistic, linear regression, support vector were basically just swapping out one line.

This flexibility is what you gain.

===========================

In the below fn is an arbitrary mathematical function such as

  let eq1 (x:float[]) = 1. - 4. * x.[0] + 2. * x.[0] ** 2.- 2. * x.[1] **3.

  let newtonOpt prec iters fn (guess:float[]) = 
    let rec iterate delta iter cguess = 
     match delta with
      | _ when delta < prec || iter > iters -> cguess
      | _ ->    let h = hessian cguess fn 
                let _, g, _ = grad_ cguess fn
                let gs =  cguess - m.Inverse() * g
                let cdel = (gs - cguess).Norm(2.)
                iterate cdel (iter + 1) gs
    iterate Double.MaxValue 0 guess
example of a loss function

  [<ReflectedDefinition>]
  let llog (cx:float[]) _XdotW y  = y * log (1./(1. + exp(_XdotW))) + (1. - y) * log(1. - (1./(1. + exp(_XdotW))))


> khan academy actually had a blog post about how he implemented ML

I belive that this might be the article in question:

http://david-hu.com/2011/11/02/how-khan-academy-is-using-mac...


There is no reason that there could not be a graduated difficulty for these classes.

Example: The 'level 1' or 'core' videos and assignments can be a base and offered for free and be of a similar duration and difficulty as the class now...

'Level 2' would either replace or augment the 'level 1' and would be more advanced and require some knowledge of pre-requisites and more 'synthesis' or 'critical' style assignments and less hand holding. Maybe they could charge for access to this level...

'Level 3 etc' could go deeper into the topic and perhaps offer more mathematical rigor or dive into more advanced topics or expose students to related current research etc. The assignments could also be tougher and more free form. Depending on how much human interaction is needed on the assignments and whatnot, they could justify a much higher price...

I would be very interested in a program that had this kind of format.

It would allow for exploration without too much commitment but a deep dive on topics that are interesting and perhaps a window into a community of people exploring the same topics...

If I were paying Stanford level tuition for the class as it stands now, I'd be a bit disappointed too.


> There is no reason that there could not be a graduated difficulty for these classes.

Of course there is. These classes are provided for free, yet require time and money and effort. You've likely more than tripled the required resources to produce the class.


There is no reason that the most difficult grades must be open to the public for free. Slap a paywall on it, a "With Student ID" bypass, and call it a day.


I'd be happy to pay, especially for the higher levels.

But it would be nice to explore topics at the most shallow level for free or at a low price to see if it covers what I expect in a manner that I find useful. Basically, a funnel.


I took both, the AI and the ML class, and completed them to the end. All this with a very demanding work schedule at a startup in the valley. I've also been a PM for a large scale ML product that is in production and used by millions of people. I say all this because the courses were perfectly geared to someone like me. I thought the courses were excellent and pragmatic. (of course, like anything, there can be improvements).

I think the issue here is what we are witnessing, aside from the awesomeness of open courseware, is the evolution and continued maturity of Computer Science as a discipline, as it takes more and more mathematical concepts into its fold.

Machine Learning is growing up as a foundational pattern / algorithm that has evolved from research to applied to basic-building-blocks-everyone-should-know. Yes, it took the Valley and Stanford to liberate it (as a poster indicates somewhere here), but that's ok. There is as much street cred in understanding how to implement/design practical applications using ML as there is in pushing the frontier on new ML mathematical techniques. That's how new commercial innovation takes place. You need both sides of the equation; the research and the practical. The course chose a balance that favored the latter, because prior to this little existed. You can hear it in Prof. Andrew Ng's videos... "this is big in the valley"..."you now know how to implement XYZ"... "if you ask these questions on an ML product, you can save your tea, time and money" (I'm paraphrasing).

Recall that at one point, logic/truth tables, sorting algorithms, graphs, etc. all needed to be derived mathematically with their proofs. But then they became axioms and codified as foundational building blocks of CS that just work, enabling us to focus on the next step in the evolution. We don't question or even think twice today when implementing "if (X && Y)".


Simplicity is the ultimate sophistication. -- Leonardo Da Vinci


It's awesome that Stanford is offering free versions of their classes and adapting the content to the needs of those students. If Stanford is teaching the same classes with the same adaptations to their core CS students, I'd be worried too. Full time on-campus students likely want (and deserve) different adaptations. That's the really concerning thing I saw in the OP's post.

Perhaps this class happened to be taught at an easier-than-usual level. But, if professors are torn between the demands of simultaneously serving dedicated (paying or non-paying) students and casual students, the compromises won't always be to the benefit of the dedicated.


I fully understand the author's concerns, but isn't it possible to just make the classes more rigorous for those(at Stanford and online) with a better CS/math background? I mean it was clear that prof. Ng was giving only part of the story, presenting the intuition and skipping the math details/proofs. What is wrong with adding the more rigorous material as optional content for the online learners, and non-optional for the students at Stanford? I am unfortunatelly only able to take these exciting classes online, but would like to see more rigour too. I am willing to pay a modest fee for the privilege.


I signed-up for the crypto class next semester. I'm looking forward to it. I code a bit of crypto and am interested to see what they'll cover. On a separate note, I don't think the full-time Standford students need to be concerned about the free Internet classes. Guys like me (state A&M college degrees) who take online Standford classes won't devalue his Standford degree one bit. Two totally different things as he is enrolled as a degree-seeking Standford student and I (and those like me) are not.


It is my understanding from various threads on Reddit that the AI class was meant also to be something of a talent search, as those in the top percentile got a message saying "send us your cv" or something like that.


I haven't taken it; so I don't know what the difference is. However you might have to separate genuine concerns from threat of students elitism being taken away.


Watch out, this guy is about to write a letter.


This is not reddit.


I have watched a few of the online lectures offered by Stanford and I can't help but notice that the audio and video quality of the lectures is terrible. The video will not track the lecturer, and the audio will randomly cut in and out for long periods of time. (If I remember correctly, one lecture was missing half its audio) Also, I am unsure of the class sizes at Stanford but it seems like no one can arrive on time to a lecture.


The online lectures you are talking about are the ones on youtube. They are not the same as the ones used in ml-class.org. The latter ones are in a completely different format.

It is not just a recording of a "normal" lecture...


I am talking about the open courseware offered here http://openclassroom.stanford.edu/MainFolder/HomePage.php I am unsure if these are the same videos offered on youtube, however by taking a glance at the website it looks like they are the exact same classes.


If I understood correctly, those were a predecessor of the current lectures. I had no problems with audio missing. (but yes quality could have been better)


I am not sure you're on the same page as the author.




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

Search: