Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: What are the best MOOCs you've taken?
1665 points by csdrane on April 3, 2018 | hide | past | favorite | 315 comments



Most fun: Pat Pattison, Songwriting, Coursera. Very good lectures, very good material, very well presented. Teaches a lot about writing song lyrics in just 6 weeks, breaks it nicely down to steps and recipes. I used to think that the best feature of MOOCs is the automatic grading and feedback from programming homework, but in this course, for the homework songwriting you gave and got feedback from 3-5 random people in the course, and it was not only useful but this feeling of togetherness with strangers was even better than getting instantaneous feedback from a bot for programming homework. Shows that teaching art scales to MOOCs as well.

Nicest: Andrew Ng, Machine Learning, Coursera. Interesting topic, well-planned material, very well avoids going into the mathy details, but still conveys a feeling of understanding of the topic, so accessible to a wide audience. (Martin Odersky, Functional Programming Principles in Scala, Coursera, was almost equally nice, but had some rough edges in the first run.)

Most interesting: Probabilistic Graphical Models, Daphne Koller, Coursera. Very interesting topic. I took the first run of the course and it had lots of rough edges. Needs a lot of work to apply the lectures to the homework. I haven't seen such a demanding course since I took quantum mechanics at university.

Best organized: Jennifer Widom, Databases, Stanford. This is not the flashiest of a topic, but oh boy was it well organized. Runs like a clockwork. Everything in the lectures is relevant, everything from the lectures is applied and tested in the homework, there is lots of homework (but still not enough to make you remember SQL,XPath,XQuery,XSLT for the rest of your life if you don't keep using them), weekly homework has a nice progression from simpler things to medium difficult things, and the web environment is well designed, and gives wonderful feedback and guides you to get your queries correct.


> Nicest: Andrew Ng, Machine Learning, Coursera. Interesting topic, well-planned material, very well avoids going into the mathy details, but still conveys a feeling of understanding of the topic, so accessible to a wide audience. (Martin Odersky, Functional Programming Principles in Scala, Coursera, was almost equally nice, but had some rough edges in the first run.)

Have to agree with all of this. I've taken Andrew Ng's Machine Learning course (only time I've paid for a 'verified' certificate), and found it a great overview of ML, though I'm not sure I'd feel comfortable telling anyone I have a good understanding of ML :)

Odersky's FP in Scala was actually the first Coursera course I took (during its initial run, I think). -- I also found the follow up Reactive Programming course to be excellent as well.


I too loved Odersky's course. It was definitely rough, but having the creator of a language teach a course about it provided insights that I wouldn't have gotten otherwise.


The Odersky's course is phenomenal. Highly recommended and it shows how much attention and craftmanship was put into designing Scala. Bonus: Martin speaks like Arnold and it's very enjoyable to have a "Terminator" voice teaching you complicated material.


I normally speed up his lectures to 1.25x. I love the lectures but 1.25 just sounds so good!


Interestingly, you took the same path I did with Scala and ML. My criticism about these courses is that some of the projects and content can be too easy to get right, skimming on the surface in some areas that would need more time to grok. Lately I've moved to Udacity and there I can find more in-depth projects and discussions with virtual classmates. The price is steep but you pay for what you are getting.


Agreed Ng's Machine Learning and Odersky's FP in Scala were my favorites. I'm looking for a good bioinformatics course at the moment. I wrote a small program for my daughter that attempts to find CRISPR sites for my daughter and it would be great to know more of the background.


The UCSD bioinformatics algorithms courses on Coursera are fantastic: https://www.coursera.org/specializations/bioinformatics



I wish I enjoyed Andrew Ng's Deep Learning courses. For him being the cofounder of Coursera the production quality (audio/video) was pretty lacking. The whine/distortion on the audio made it difficult to listen to on headphones. Many of the exercises were either a bit too railsroaded and simple, or poorly explained in their goals and barely worked. I really didn't like his style of writing on the digital whiteboard. Perhaps just a side effect of a MOOC, but he never checks for understanding in even the most basic of ways.

While I'm not perfect, I spent nearly 3 years teaching at a bootcamp fulltime, so perhaps I have different standards for communicating and teaching actionable lessons?


+100 to Andrew NGs machine learning. Inspired me enough about the potential of online education to start a (now reasonably successful edtech) company!


That's nice. Which edtech company is that?


> Jennifer Widom, Databases, Stanford. This is not the flashiest of a topic, but oh boy was it well organized.

Couldn't agree more. I took this course in 2011 but didn't have a need for working with databases until 2014. Three years after I took the course I was able to jump in and work fluently on databases -- Mongo, Sqlite, Firebase, etc. The least I can say is the course helped me internalize database concepts.

This course has the right amount of handholding yet challenges you enough so you acquire long-lasting skills.


Ditto. I was able to get my foot in the door of industry due to this course and Scott Allen's PluralSight C# courses.

I've now built 2 data warehouses and helped with maintenance on another. It's not my main focus, but it's nice to be able to do it myself when the work calls for it.

I got hired at my first job out of college due to the C# ones and I've been working in C# since then, with a smattering of other languages here or there.


+1 for Scott Allen



Looks like it got broken up into smaller mini-courses available here: https://lagunita.stanford.edu/courses/DB/2014/SelfPaced/abou...

Main page: https://cs.stanford.edu/people/widom/DB-mooc.html


Yes there was a couple on Coursera but they scrapped it for God knows what reason. https://www.coursera.org/instructor/~1196954


Chiming in with support of this course.

I studied portions of it before I got my first "real" tech job (not a call-center) and it put me on a path straight towards my career as a developer. I go back to the course every year or so and try to pick more gems out of it -- it's truly fantastic.


That was the first MOOC I took as well. It turned out to be an excellent entry point for databases. Perhaps because it was one of the first Stanford MOOCs, the quality of it was high.


This thread's full of really valuable information, so I've compiled these and a bunch of the other courses mentioned here into a big document[1]. I've also added quotes from this thread, with links back to the original comments.

[1] https://www.notion.so/MOOCs-recommended-by-Hacker-News-e1070...

EDIT: the previous link pointed to one of the headers in the page, instead of the page itself.


Andrew Ng's class was great! For a tougher class that focuses on one of the technologies, I recommend Geoffrey Hinton's "Neural Networks for Machine Learning" on Coursera. Really eye opening for me, and fairly close to the leading edge in deep learning, as far as I can tell. I felt that the exercises were more detailed and challenging than in Ng's class, and thus I ended up learning more.


> Probabilistic Graphical Models, Daphne Koller

– the first course in the specialization has a very good and engaging start, but the gap between lectures and problems widens quickly after that (maybe that's why the author boasts about a "challenging" course "not for everyone"). I'm hesitant to take the next course of the specialization.


PGM was brutal... At Stanford straight As students were happy just to pass...


It's indeed dense and packed with many intermediate intuitions.

On the other hand, I still feel that the course is often unnecessarily brutal and could use better explanations.


MIT had a similar course on edX and that one was brutal as well (Computational Probability and Inference). I guess nobody figured out how to teach it the easy way.


I've been meaning to either take the course or read the book. I'm curious if you've read the book [0] and how you would compare or if you'd recommend one, the other or both.

[0] https://mitpress.mit.edu/books/probabilistic-graphical-model...


I read the book nearly cover to cover. I can't recommend it enough, but it's an enormous time and energy investment.


Thanks for the response friend, I think I'll order myself a copy soon and get working on that enormous time and energy investment. :D


Is PGM still relevant as it was five years ago, given the renaissance in deep learning and other NN techniques?



For me Bayesian networks are a tool of thought and I think it's worthy to learn them in the same way it's worthy to learn to sketch functions with pen and paper.



Yes, I think so. PGM or some improvement on that is relevant to doing things like reasoning correctly based on evidence.

I envision more sophisticated AGI systems to use DNN or other NN techniques to learn about the world, and be able to take in uncertain input and make sense of it. PGM or similar would then be used to correctly (in the mathematical sense) reason about what to do to accomplish the agent's goals.


Also graphical models are combined with deep learning techniques for SOTA performance in area like Named Entity Recognition.


FYI: This video on PGM by Bert Huang is pretty easy to follow: https://www.youtube.com/watch?v=zCWRTKnOYYg&index=20&list=PL...


I wrote about the first version when it was all in one course. It seems they have split it into 3 courses now. Probably it's less dense now.


I too took the first iteration, and it was... quite terrible.

The lectures were OK, but the homework was more than challenging. Not only had you to battle with the topic itself, but then you need to magically acquire knowledge in some totally unknown topic (I think it was genetics) and wrangle the quite baroque representation of that topic shoehorned in a programming language that is totally not made for it.

I was on the verge of despair because of those secondary problems. Really.


> Nicest: Andrew Ng, Machine Learning, Coursera.

It's good to hear that this MOOC is still so well thought of since I first took it; for me, it was the first course I took that made me really understand how a neural network and back prop actually worked.

When I took the course, it was in 2011 - and was known as "ML Class"; yep - I was among the first "beta tester guinea pigs" of the course. It was fun and amazing to participate in.

One of the early participants was even inspired to replicate CMU's ALVINN self-driving vehicle in miniature:

http://blog.davidsingleton.org/nnrccar/


Pat Pattison, Songwriting, Coursera! I took this too! Fantastic! Delightful to learn something (anything!) from someone who so thoroughly and completely knows just what he has to say to teach a topic he's expert at.


> Pat Pattison, Songwriting, Coursera

This course gave me professor envy and made me up my game. So well done.


Yes, I enjoyed the Pattison songwriting class as well. At first his applying the "strong" and "weak" concepts to every aspect of a song lyric seems overly simplistic, but it actually starts to make sense. I came into class with considerably previous experience in writing poetry, but thought I learned a lot from him and my peers. His breaking down a performance coaching example was also very instructive.

Other music MOOCs I enjoyed:

The Berklee "Developing your Musicianship" series on Coursera taught by George W. Russell. Started off thinking this was too elementary, but the ear training is valuable, and I learned a lot about the use of diatonic chords, and even the few simple patterns he taught improved my song writing enormously.

The Berklee "Jazz Improvisation" class taught by Gary Burton. Very cool to be taught by a living legend, and his selection of songs was refreshingly modern. On the down side, skill levels of the students varied widely, so peer review was more miss than hit.


> The Berklee "Jazz Improvisation" class taught by Gary Burton. [...] On the down side, skill levels of the students varied widely, so peer review was more miss than hit.

100% miss for me. The main thing I learned from that course is that a "MOOC" relying on peer review for feedback is a colossal waste of time, and should have stayed as a video lecture series.


True, I did not learn much from the feedback. On the other hand, the existence of peer review might have pressured me into putting more effort into my exercises.


I concur completely with this assessment of Ng's and Widom's courses.


The coursera songwriting course is really great. Also Python for Beginners, the one that uses CodeSkulptor.


Do you mean "Python Programming Essentials"? https://www.coursera.org/learn/python-programming


That's it. In 2013 anyway, it was a good introduction to Python.


On the Pattison one, out of curiosity did it use his Writing Better Lyrics for the material? I've read the book and love it to pieces even though I write prose, the way he explores words and phrases is sort of magical.


Financial markets by Robert Shiller: https://www.coursera.org/learn/financial-markets-global

I wanted to invest better so I took this course to learn the basics of financial markets (I'm a software guy and have zero training in finance). After taking it, not only do I have the basics nailed down but have gained a massive appreciation of finance as a technology that, at its best, mitigates risk and advances society.

Shiller is an authority on the topic, having won a Nobel Prize in Economics no less. His penchant for financial market history and human behavior angle on things is a massive plus for this course. I'd say the course is useful education for entrepreneurs and curious folks alike.


It's kind of crazy that, at least in the US, personal finance is not taught so much in grade school. I had to do a lot of reading and research now in my late twenties to figure out the best way to manage the RSUs I get at work and how to plan for a home purchase and retirement. It turns out (surprise) that most financial institutions don't have regular investors' best interest in mind. Instead, they see us as customers with value to siphon out over long periods of time.

Understanding how economies work[1], how financial service companies sell products, theories behind volatility and market forces, and how simple portfolio management can be goes a long way to improving an individuals ability to efficiently self-manage their finances.

1. https://www.youtube.com/watch?v=PHe0bXAIuk0


The video gives a really good explanation but i loved the book he released freely along with that but maybe I have a preference for that. I am awed at by the knowledge this guy has ... If you haven't already read the book "Principles" by Dalio ( same guy)


I actually just finished this course and loved it! It covered all the financial ground that I was looking for... stock, options, brokers, financial planning, insurance, and financial theory.


+1 I loved this class


I was about to disagree, but it seems that course was redesigned in 2017 and the new syllabus looks like a real course.

So I'll just say the pre-2017 version I took was clearly created by bad PR-people.


As a serial MOOCist I cannot single out any one so here is a list per domain.

Data Science

Introduction to Probability - The Science of Uncertainty,math oriented MIT/EDX Difficulty:5/5 Videos:5/5 Material and exercises:5/5 Usefulness: 5/5

Learning from Data, math oriented formerly Caltech/EDX now on caltech, check the exercises and you will see the difference in quality with Andrew Ng: Difficulty:4/5 Videos:4:5 Material and exercises:5:5 Usefulness:3/5

The Analytics Edge - Bertsimas MIT/EDX.You will learn practical stuff in R includes a kaggle competition. Difficulty:3/5 Videos:4/5 Material and exercises:6/5 Usefulness:6/5

Computational Probability and Inference MIT/EDX Computational probabilty using python. Difficulty:2/5 Videos:3/5 Material and exercises:6/5 Usefulness:5/5

Basic Modeling for Discrete Optimization: Uses an easy to learn language called minizinc which has multiple backends and is useful for those types of problems. VERY pleasant to watch videos. Difficulty:2/5 Videos:4/5 Material and exercises:3/5 Usefulness:5/5

Deep learning: deeplearning.ai coursera and fast.ai for more practical stuff.

Non data science:

I have not done the exercises on these just watched them:

Learning how to learn: Life changing I wish it existed many years ago.

Influencing People: Puts things into perspective. Makes you ponder about morality

Roman Architecture: Includes the "why" it is like the old "who moved my cheese" book, but in roman architecture edition.

Explaining European Paintings, 1400 to 1800: What it says on the tin.

Economics of money and Banking: In all tuthe courses I have listed the professors are very good. But this guy.... Makes a difficult subject so approachable and watching the news becomes as painful as watching a train full of passengers going to broken bridge

I am sure I have forgotten others

MOOCs have changed my life, financially and in other ways. I thank all the people involved.


Hey antman, thanks a lot for the comment! Can you elaborate a bit more on how MooCs have made a difference in your life? Thank you.


I was a mech eng manager in industrial automation. Did the MOOCs, chose a domain, started a phd in ML and AI by showing my MOOC results, got picked during the 3rd year from one of the big consulting companies, now running a series of international projects. Banking(IT only), AI, CompVision and Analytics.


This is very inspirational. Thanks and congrats!


Wow, that's excellent. Great job.


Are all of these non-data science courses from the same source? From different sources? Where are they?


The first 4 he listed are on edX.org, the 5th and 6th on Coursera.


Nand2Tetris was my favorite. I can't say the information (particularly the first half) has much practical application for me, but it was a lot of fun and deepened my understanding of what's going on at a low level. Homework is very well designed with a simulator you download to test your work on, then submit for automatic grading.

Udacity's Differential Equations course was pretty awesome too. I had taken Calculus previously, but I believe it's pretty approachable even if you haven't. The homework was very well designed, and involved fun problems like computing gravitational slingshots and curing diseases.

Coursera's "The Unwritten Constitution", also has a similar "The Written Constitution". Both are pretty awesome and really gives an in depth view of what the constitution is about (spoiler alert: it's about slavery), and even points out holes that haven't been challenged yet. Homework was writing essays and grading other people's, so not that well designed in that respect.

Coursera's "Coding the Matrix" is a Linear Algebra course. I took it the first time it was offered, and you pretty much had to buy the accompanying book to follow along. And the book unfortunately had a lot of "first version" issues. A lot of the homework wasn't explained very well, but it was all auto graded code. I think the issues with the book have been addressed with the second edition, not sure about the homework. I had already taken linear algebra before, so this was mostly a refresher, but even I found it hard to follow along in the last part, and never completed the last homework assignment.

On Youtube you can find "Fundamentals of Small Arms Weapons" from 1945. It shows how the action of a small arms rifle works. It starts as just a tube with a bullet, and works up to several different types of fully automatic actions. It's just a couple hours long.


Coding The Matrix had a great concept. The learn-math-by-coding approach allows the student to see applications of the material from early on. The treatment of complex numbers was especially strong.

The tradeoff is that the student must debug during the exercises (an activity which is unrelated to the material), but it's worth it.

Regrettably, Coding the Matrix was taken down down along with a lot of first-generation Coursera courses. However, there's still the book, the website at http://codingthematrix.com and the the lectures from the Brown University version of the course:

https://cs.brown.edu/video/channels/coding-matrix-fall-2014


> Nand2Tetris was my favorite.

Yes! Nand2Tetris came about before "MOOC" was even coined. It's a great course where you start building simple circuits in a hardware simulator, and eventually build a working Tetris game -- on hardware you built (running in a simulator), in an OS you wrote.

Highly, highly recommend it.


I loved both Nand2Tetris and Coding the Matrix, although I had different experiences with them. For Coding the Matrix, I didn't buy the book, but just watched the videos and worked through the course work. This was super fun, but I could see someone who was not proficient in python getting really frustrated. I took it the first time it was run as well, and there were a couple of rough areas, but overall it was really enjoyable.

With Nand2Tetris, I just bought the book and worked through it without taking a class. I'd sketch out the hardware literally on the back of napkins and then try it in the simulator when I got home. It was incredibly fun, and I loved how it took everything down to first principles.


Yes, Nand2Tetris was great! I learned so much and it was challenging and fun.


Three Coursera MOOCs I particularly enjoyed:

* Discrete Optimization: almost entirely problem-driven, very challenging and entertaining prof; https://www.coursera.org/learn/discrete-optimization

* Crypto I: very deep, thorough and crystal clear explanations; https://www.coursera.org/learn/crypto

* Computer Networks: excellent overall course covering a wide variety of topics; https://www.coursera.org/instructor/~517478, https://www.youtube.com/playlist?list=PLfgkuLYEOvGMWvHRgFAcj...


Prof. Dan Boneh's Cryptography I is really good.

Compared to many other MOOCs, it provides solid foundations while being easy to follow.

https://www.coursera.org/learn/crypto


Computer Networks is definitely the best MOOC I ever took. I hope they bring it back.


Computer Networks looks great it's a shame they pulled it down.


Take a look at https://lagunita.stanford.edu/courses/Engineering/Networking.... Haven't taken either, but Stanford typically puts out pretty good MOOCs.


Lectures are great. Material is at a solid undergrad level (should be suitable for someone with 1-2yrs of CS background). No programming assignments, so I would go look at Phil Levis's website to find the "regular" course website and do the programming assignments from there.


I LOVED discrete optimisation


Learning how to learn, Barbara Oakley, Coursera.

By far and away the best learning course I've taken in my life as well, I wish it had been available before I had completed my formal education.


Everyone who wants to learn anything in life should take this course first, I can't endorse it enough.


Would you say this course would help learn languages? I'm currently self-studying Japanese, so adding another "class" would be difficult time-wise. But if this Coursera course would help, it might be worth the time for me. Thanks!


100%, YES.

Self-taught Japanese, Chinese, etc. Course changed me. Wouldn't be a programmer without it.

Sidenote, there's no PM function here, but my email's in my profile. Shoot me a note if you want any tips on Japanese etc. Got decks of anki flashcards for daaaays.


Too late to edit, so, summary of what I sent OP in my email:

1. Taking the coursera course probably a valuable use of time, alongside more general "meta-learning" about personal psychology. Books such as "How to Win friends..." "Power of Habit..." "Wherever you go, there you are..." etc

2. Use "anki" or "ankidroid" depending on platform. Get public decks "Hiragana with stroke diagrams and audio," "Kana (katakana)," "Core 2k/6k optimized Japanese vocabulary," and use following youtube video to then create forward/backwards cards: https://www.youtube.com/watch?v=DnbKwHEQ1mA

3. Use this resource for japanese grammar and complete exercises: http://www.guidetojapanese.org/learn/grammar

4. Use this to practice listening skills: http://www.nhk.or.jp/radionews/

5. Create and write down a clear reason for learning Japanese, and potentially book a flight (well ahead of time, and if economically viable) to set a concrete timeline for learning.

EDIT: By the way, the "Core 2k..." cards have example phrases for every word. I don't recommend trying to memorize these, but I do recommend reading the sentence out loud for every card. Muscle memory, further familiarity with grammar, helping sort whether a given verb is a ru- or non-ru verb, etc.


Anki is a lovely piece of FOSS, but its best to create your own deck(s). The process of making them, allows you to learn the content, and you're immediately familiar with the content as well. Pretty much like reading a book for studies the first time.


Has anyone read her book and can comment on the differences?

I own the book and have half-read it twice, it’s very underwhelming. At no point am I thinking “that’s going to change my way of doing X”


I haven't read the book but looked through it (hastily though). It was pretty the same - like a slide version of the course.

You shouldn't expect some direct instructions about "how to do/achieve X" in this course/book, I would say. It's more like Brain 101 - A layman's guide on how to use it efficiently. I say "layman", because as you go through the course you realize how little you know about your own brain. It teaches you how to treat the brain, basically - it was the case for me at least (e.g. the real need for sleep, for one). It's not a some kind of deceptive self-help book (course), after all.

Besides, Barbara Oakley is not the only instructor of the course. Terrence Sejnowski[0] is also involved, who is an important figure in his field - Computational Neuroscience. He appears in some videos.

Last but not least, maybe following the video lectures would be more fun for you too. Barbara Oakley, such a lively and nice lady. I wrote her a "thank you" e-mail stating my appreciation for the course and not surprisingly, she replied kindly. I'd like to meet and have a conversation with her some day - but I'm thousands of kilometers (0.621 miles:) away.

[0]https://en.m.wikipedia.org/wiki/Terry_Sejnowski

My two cents.


Thanks, really appreciate the writeup. I might give the course a crack, given the positive reviews it’s getting in this thread.


I'm halfway through the course and it's really basic and underwhelming.

Most of the "techniques" are stuff you pick up in middle school.

Also I find the teaching style, with those cute cartoons and sounds, extremely patronizing.


I've done the course. What you are saying, regarding the techniques being "stuff you pick up in middle school" is patently false. If you don't like the style of course, just say so.


I would say that your approach to the book, and possibly your own learning, is misinformed. They talk about it on the course - the Einstellung effect: entrenched pathways inhibiting your way to new approaches. The techniques are practical, and cerebral musingdoesn't give you an insight on efficacy. You literally have to try it. Mini-testing and "daydream" methods for scraping your subconscious? Definitely not taught in middle school - or frankly, anywhere.


I second that, really a good, to recommend course that gives you insights how our brains work and learn. Although a bit lengthy for my taste.


And if you've never taken any MOOC before this is a great one to start with because: it's only four weeks long and it's free.


Also it looks like the most recent offering of the class started just yesterday, in case anyone else is looking to take it.


Thanks for the heads-up. I'm signing up.


Khan Academy math, because of the exercises.

They are consistent, not very buggy, gamified, and consumable in small or large amounts. Sal Khan is a good communicator and the videos are decent, but it's the exercises that make Khan Academy exceptional.


Khan Academy filled the gaps from my inconsistent public schooling (moved a lot as a kid). Used to think I was just dumb (I might still be lol), but turns out missing some of the early math concepts is extremely destructive to later learning. Fill the gaps and everything else becomes so much easier.

I hear tell Sal Khan is hiding out in the Bay Area somewhere, really wish I'd bump into him in a bar so I can grab his tab or something. Dude's a hero to me.


Khan Academy, Wikipedia, Archive.org. Between those three there is a lifetime of free education.


How do you use Archive.org as an educational resource?


For instance:

https://archive.org/details/mit_ocw

And then there is archive team with their Coursera backups as well.


This is probably the right answer, boring as it is.

I also loved that I would actually see Sal's videos come up as the top results for my calculus questions to illustrate things like matrix multiplication.

It's not often I feel like YouTube hits are as dead on the money for me as they used to be in thsoe days.

The 10-minute limit on videos at the time was to YouTube what the 140 character-limit was to Twitter.


I have been assisting my younger brother in his math deficiencies. Khan Academy has made it so much easier. I'll have him watch several videos on the topic we need to cover, and then work through his assignment together. This lets me focus on the specific areas he didn't understand instead of trying to reteach everything. Really wish I had this when I was younger.


This is probably the right answer, boring as it is.

I also loved that I would actually see Sal's videos come up as the top results for my calculus questions to illustrate things like matrix multiplication.

It's not often I feel like YouTube hits are as dead on the money for me as they used to be in thsoe days.


protip: the hint links usually give a good textbook-style overview (click after answering to not affect gamification).


Model thinking (https://www.coursera.org/learn/model-thinking)

Taught by Prof. Scott E. Page, teaches about models in several fields and how they're used to aid thinking about complex issues by careful design and usage.

A couple of insights: all models are wrong but some are useful. Having many models about a situation to help your thinking is better than having only one, and much better than none. Complex models are not necessarily better than simple ones.


I love this one. Saw it when it launched and it frequently helps me see through some situations. Some models explains why, despite best intentions, things go awry sometimes. Sometimes things are terrible not because people are terrible, but because everything interact in ways that are difficult to understand and predict.


Absolutely, this was one of the better courses I've taken. My only wish would be to have the course expand and include models from says physics or chemistry, just so that students could get a feel for how both quantitative and qualitative models can both be useful.


Functional Programming Principles in Scala [1] taught by Martin Odersky, professor at EPFL and creator of the Scala language.

[1] - https://www.coursera.org/learn/progfun1


Seconded! Odersky is a great lecturer (and very practical lecturer despite Scalas "academic" reputation) and the course was very well organized.

I did the course on the first or second run however, not sure if it has been kept up to date or if it is still well run.

Was disappointed with the follow up courses though, the lecturers didn't live up to Odersky.


I'm in the middle of auditing the Scala track on Courersa.

The first course was great. I agree that Odersky is a very good lecturer, organized and easy to follow. I'd recommend it to anyone interested in Scala.

The second course was OK but not quite as good, it felt a little less systematic. It was mostly Odersky, but for part of the final week the course switches tracks to a different lecturer who clearly was preparing slides for a different lecture series, and I thought both the lectures weren't as clear and the stitch-in of the different material wasn't handled smoothly.

I've just started the third and while it's not Odersky, the lecturers have been good so far.


Would this course be appropriate for those with a lot of general programming (OOP) knowledge, but little to no FP experience?


I'd go as far as to say that those folks would be the ideal audience.


IMO, yes, very much.


MIT OCW contains quite a few true gems. These lectures will still be worth watching 100 years from now.

- Differential Equations from 2015: https://ocw.mit.edu/resources/res-18-009-learn-differential-...

- The original SICP recordings from 1986: https://ocw.mit.edu/courses/electrical-engineering-and-compu...


what makes the differential equation course so good, in your mind?


Gilbert Strang is a lengendary teacher.

In addition to the other Gilbert Strang ODE courses, this one comes with videos for numerical solutions. From the inventor of Matlab himself.


I took the Programming Languages course on Coursera which is so far the best course for me. It changed the way I learn any new programming language.

https://www.coursera.org/learn/programming-languages

I see that they have split the course into 2 parts.


That's also the one I would have picked.

I liked that it used ML, and the parallel/isomorphism between functional and object-oriented programming was really well illustrated IMO.

Really good to develop basic intuition before going into more advanced stuff.


Actually, there are three parts. The course uses Standard ML, Racket, and Ruby as vehicles for teaching the concepts. The intent is to make you a more effective programmer in any language.


It used to be 1 course, they've split it into 3 parts for commercial reasons I suppose.


He says he didn't, and that the summed price of the three courses are the same as if it were to be a single long course.


Could you expand on how it changed things for you? How did you learn them before vs after?


> It changed the way I learn any new programming language.

I can say the same and I can offer my reasons: until this course I saw every language like a little island; after this course I understood that programs are just a collection of features: various typing systems, static/dynamic scoping, lazy/eager evaluation, etc. It's a ton easier to learn a new language by identifying these features than by looking at a language as a big blob. This also made me realize that languages are not little disjoint island - they're overlapping a lot instead.

The course was the way I got into racket and other lisps and this allowed me to read SICP. Since then I've been doing all sorts of toy interpreters/transpilers for fun and it allowed me to get an idea of what's happening behind the scenes in real languages. For example, I used to think that closures are magical, but after implementing them as part of the course they were a piece of cake afterwards. You will get a profound satisfaction when you implement call/cc yourself and suddenly you understand how try/catch or generators work.


I took the same path and went back to reading SICP. But, this time around is was very easy. I had the same experience about implementing closures and the embedded language.


Interesting. Did you feel like you needed a strong understanding of compilers or automata to really grok what was going on (I think automata relate to programming languages, but could be mistaken)?


None at all. Automata are used to turn a program from its textual form into some manageable data structure that something else will consume (actual interpreter/optimizer/compiler). At some point in the course (in the racket part) you will be asked to implement an interpreter for MUPL (made-up programming language), but the programs are directly written as a data structure - so no need to parse; in racket both data and code look exactly the same - it'll be a breeze.

I think the only requirements for this course is some plain procedural language (C/Pascal).


I already see some good responses to your question.

As for me, before this course, learning a language was a mechanical process. I learn the syntax, learn some idioms and go with it. But, after this course, as the other commenter put it, I started learning every language as a set of features. That opens up a whole new world. For instance, when learning a new language, you seek out the features your are interested in and then figure out how that language lets you use it. For example, does a language support abstract data types, what paradigms of programming does it support, is it imperative or functional, lazy or strict, is the language supposed to be used as a bunch of statements or expressions, can common idioms be implemented as simple language functions or do I need the language to support it internally etc, does it support lambdas, does it do lexical or dynamic binding etc. The course also takes you through ML, Racket and Ruby and gradually exposes you through this concepts and in parallel explains what the trade-offs are as you give up once paradigm for another.

So, after the course, next time if you open up a beginners guide to any language, you will be seeking our answers to high level questions. The syntax to use will be learned automatically as you use those 'concepts'

Dan Grossman is a an excellent teacher. His passion for programming languages can be seen in his teachings. The homeworks are very relevant and helps you solidify the concepts. I am thankful to him for offering this course.

Hope this makes sense.


It dispels all the magic around programming, by helping you build a knowledge of computer programming agnostic to any programming language. Dan Grossman is a superb teacher and the way he ties concepts together is awesome. I'll be forever glad for this MOOC.


Georgia Tech's Knowledge Based AI class (on Udacity: https://www.udacity.com/course/knowledge-based-ai-cognitive-...)

Fantastic course, more focused on theory than programming, but full of deeply fascinating commentary on what is knowledge, intelligence, learning, etc. and what does it mean for a program to demonstrate it (ie. what is AI anyway?).

My daughter was about 18 mo. old at the time I took the class, it was an outrageously awesome added bonus to watch a little human learn all the things I was trying to get a computer to learn at the same time.


I took the same course as part of the OMS CS[0] program. I wasn't terribly a fan of the lectures, but the most fascinating part for me was the course project: building an AI agent that solves Raven's Progressive Matrices[1], basically a visual IQ test. Really intriguing and challenging stuff... easy to get "easy" problems right, but incredibly hard for any of the harder[2] ones. I do wish I didn't have to mess with any computer vision, and instead spent more time integrating more concepts in KBAI.

[0]: http://www.omscs.gatech.edu/

[1]: https://en.wikipedia.org/wiki/Raven%27s_Progressive_Matrices

[2]: http://www.highiqpro.com/iq-tests-iq-scores-iq-questions/mat...


I took the class during my undergrad at Tech and I could not agree more. There was such a disconnect between the class material and the project.

Additionally, this is the class that gave us "Jill Watson", the robot TA.

http://www.cbc.ca/news/technology/robot-ta-ai-1.3585801


Economics of Money and Banking, taught by Perry Mehrling on Coursera:

https://www.coursera.org/learn/money-banking

It's just fantastic. He explains what money really is from the perspective of treating everyone as a bank. Also, lots of good history here including the history of central banking, the gold standard, and war finance.

Anyone who wants to understand money should take this course. It would be nice if more cryptocurrency enthusiasts learned this kind of monetary economics.


[flagged]


Could you please not post unsubstantive comments here?


1. Quantum Mechanics and Quantum Computation (on edX, from UC Berkeley: https://www.edx.org/course/quantum-mechanics-quantum-computa...), taught by Umesh Vazirani. Intro to quantum computing that made clear key ideas in quantum mechanics, almost in passing. The first of over 70 MOOCs I completed, not available at the moment.

2. Astrophysics (on edX from Australian National University, 4-part series: https://www.edx.org/xseries/astrophysics) taught by Brian Schmidt and Paul Francis. Delightful. Plenty of math but mostly at undergrad level. A grand tour of current topics.

3. First Nights - Handel's Messiah and Baroque Oratorio (on edX from Harvard: https://www.edx.org/course/first-nights-messiah-harvardx-mus...) taught by Thomas Forrest Kelly. Historical perspective and structure of the music. I was hooked from the first lecture. One of a series of 5 outstanding courses in the "First Nights" series, this is my favorite.

So many great MOOCs, so little time.


is there any way to view the old material from #1?


Another oddball choice for HN, but the Coursera course Think Again: How to Reason and Argue, by Duke University's Ram Neta and Walter Sinnott-Armstrong [1] is exceptional.

The subject matter covers a staggering breadth of topics, which can be characterised as either (a) fundamentals of philosophical reasoning, or (b) stuff that amateur internet-debaters think they understand but actually don't.

[1] - https://www.coursera.org/learn/understanding-arguments


3b1b's series on Linear Algebra is essential for an intuitive understanding of the topic: https://www.youtube.com/playlist?list=PLZHQObOWTQDPD3MizzM2x...

(Really anything by 3b1b)


Best course so far: AI from BerkeleyX

Other great courses: Learning to Learn, Irrational Psychology by Dan Ariely, and Algorithms by Sedgewick

Can someone recommend a good way to work with other students on MOOCs? I've taken many courses, but they aren't much better than just reading the textbook and working on a personal project, although the curation of content is valuable.

The relationship aspect is sorely missing from online courses. If there was an easy way to have a classroom setting with highly motivated peers each following the MOOC with a collaborative environment, then I would definitely want to sign up. You say that's what college is for? Well I've already graduated, signing up for random college classes is extremely expensive and the peer group is highly variable.


The best way I found was to sign up with a group of co-located friends and form a study group. If you don't know anyone who wants to take your course, maybe you could try joining a relevant Meetup group and asking people there?


Andrew Ng's Machine Learning Course on Coursera: https://www.coursera.org/learn/machine-learning


I've taken 10 GaTech OMSCS courses via Udacity. Two of my favorites (so far): Intro to Computer Vision: https://www.udacity.com/course/introduction-to-computer-visi... Reinforcement Learning: https://www.udacity.com/course/reinforcement-learning--ud600

I found the Isbell+Littman combo to work so well that I also took the ML course. I know some people complain about their humor but it was perfect for me. I could listen to those two explain just about anything. I still LOL when I think about Littman saying to Isbell something like "are you trying to teach us something by making this lecture infinitely long?" Who knew RL could be funny?


Second, this! I was a big fan of Isbell+Littman. There was a brief conversation on Twitter about a third class[0]. Really hoping it happens!

This was also probably my favorite OMSCS class. The projects were particularly enjoyable... especially the OpenAI Gym lunar lander[1]. Kinda bummed that OpenAI chose to shut down the online submission platform.

[0]: https://twitter.com/isbellHFh/status/893216499439210497

[1]: https://gym.openai.com/envs/LunarLander-v2/


I can also attest to CV being a great OMSCS class. To me they are by far the best lectures in the program in terms of breadth and depth. They're the most similar to in-class instruction of a university unlike every other class in the program.

As for Isbell+Littman... while their lectures may be more jovial, I wouldn't say they were as effective in learning. I hated the videos tbh. For ML, I found my learning consisted of watching other available videos on the web. Including institutions like CMU, UW, Stanford, and YouTube.


I'm currently taking Intro to CV, and can attest it is indeed quite superb - the professor has a fantastic way of explaining theory, and goes over a really large number of topics. His antics with the videographer are also quite hilarious


These courses are for beginners, but I started with what I learned from a few courses in Coursera and turned it into a career as a software engineer. https://www.coursera.org/learn/learn-to-program and https://www.coursera.org/learn/program-code from Jennifer Campbell and Paul Gries from the University of Toronto laid a great foundation to build on. I think I took them the first time they offered it and I still don't understand how they completely nailed a new medium like that first try. It was very accessible, but with enough detail to make sense and the videos were so clear and concise. The Python one from Rice University, is a fun, awesome course, where you build games to learn. https://www.coursera.org/learn/interactive-python-1


how did you turn it into a career?


I extracted everything I could from those courses, which served as a basic comp sci foundation, saw that I was pretty good at it, took a few more not-as-important courses, then applied to a challenging coding bootcamp. I passed the coding tests, got in, worked and learned the hardest I have ever done so before for a few months, and continued studying on my own for a couple months. Then I applied for a job that required a practical coding test, knew someone at the company so they would at least give me a chance, and crushed the coding challenge. I was almost optimally prepared for the job and hit the ground running, while having no official credentials. It's been great since then. The only drawback is that I don't have the broad depth of knowledge/experience that I imagine can come from a CS degree. So I am planning on getting a masters.


CS50 on EdX was a great intro course helping me to get into programming.

Agile Development Using Ruby on Rails (in two parts) on EdX was also great, primarily because they encouraged students to set up pair programming sessions over Google Hangouts. It's amazing how many ways there are to solve a problem, and live discussions in small groups over Hangouts were an outstanding resource to learn.

I am currently enjoying courses from the Applied Data Science with Python specialization on Coursera. I love how they are using Jupyter notebooks for assignments; it makes the problems feel realistic and at the same time very accessible.


This might not be the answer you're looking for, but if you ever want to learn to play the guitar, Justin Sandercoe will take you from novice to expert for free at justinguitar.com. The way he teaches and structures his lessons will probably appeal to a lot of programmers. Also one of the nicest people in the world.


Dan Ariely's behavior economics mooc (from Duke, through Coursera) was more of a graduate level calibre in terms of required/recommended readings and the videos were of high quality.

There was a gamification mooc taught by Kevin Webach (Wharton) that was excellent, too.

Chuck Eesley's first tech-entrepreneur mooc was ground breaking (it led to the spinoff of NovoEd).

The last mooc I actually completed was one for contract law, offered by harvardx. It gives a nice, high-level overview of the subject-- good enough for my needs/interests.


Ethical hacking. This guy is pretty legit, first class: install Kali Linux.

https://www.udemy.com/learn-ethical-hacking-from-scratch/

Andrew Ng. Machine Learning (Stanford) (youtube free)

https://www.youtube.com/watch?v=nLKOQfKLUks


I’ll second Ethical Hacking. His pen testing material is a benefit to any web developer serious about building secure applications. In addition Zaib does a great job of regularly updating the materials and is very responsive to students questions.

This is the only MOOC that I have gone through multiple times.


Currently enjoying the 2017 lectures (and I bought the text) for McElreath's bayesian stats course:

http://xcelab.net/rm/statistical-rethinking/

Strang's MIT OCW Linear Algebra is pretty good. Probably also needs the textbook.

John Tsitsiklis' MITx edx Probability intro course is probably the best course I've taken anywhere and better than anything I did in person at university. I didn't buy the text for this one though I probably should.

Robert Sapolsky's Human Behavioral Biology Stanford lectures are well worth watching. https://www.youtube.com/playlist?list=PL848F2368C90DDC3D


Came here to suggest Robert Sapolsky's class as well.

I would also add Michael Sandel's Justice: What's the right thing to do? https://www.youtube.com/watch?v=kBdfcR-8hEY&list=PL15D875D84... great course on moral reasoning, covers different theories of justice based on ideas from Aristotle, Kant, John Stuart Mill, John Rawls and many more, extremely well presented too.


I concur on the MIT edX Probability course. I spent at least 15 hours a week on the exercises but it was well worth it.


Robert Sedgewick's Algorithms has been one of the best for me, not only as a general refresher on algorithms, but also as a way of better understanding complexity notations.


I enjoyed the lectures quite a bit, but ran into a lot of trouble with the problem sets. I'm wondering if anyone else had a similar experience, or if I should give it another chance and try some different approach?

The problem I had was that he gave you a mostly finished program which utilizes the percolation algorithm, but then asks you to fill in some data structures and functions to make it work, and finally a test suite should let you know if you've completed that successfully. The issue I had was that there was basically no feedback, or incremental progress that you could make towards a solution. You either understand the full requirements and are able to implement them, or your tests fail and you have to scratch your head some more wondering if you misunderstood the problem or what.

I loved the approach that Tim Roughgarden's stanford algorithms class took on Coursera, where you're actually implementing the full algorithm and are given some data sets to test them on. You could even write it in whatever language you choose.

I really wanted to do professor Sedgewick's course but I felt like I couldn't do the assignment even if I understood the algorithm perfectly. Would love some advice if anyone has any suggestions, or even if someone can confirm that I'm not crazy for having a bad time with it.


I did not run into any trouble with Sedgewick's course. His coding assignments are the most elegant and comprehensive I have seen which leave virtually no room for ambiguity. But they are challenging indeed.

> "he gave you a mostly finished program..." What? He gives you an API with public methods and you have to do the implementation. How is this a mostly finished program?

> "The issue I had was that there was basically no feedback"

The tests are your feedback. When a test fails you need to figure out why the test is failing and what's wrong with your code or if you understood the requirements incorrectly.

I absolutely enjoyed his courses and finished both of them with all the assignments. His assignments are not something you can knock out in an hour. It usually took me at least 3-4 hours to complete any assignment sometimes even more than that.

I also did Roughgarden's course and loved it. He is an awesome teacher. Both Sedgewick's and Roughgarden's courses are very good but they have different approaches. I found Roughgarden's coding assignment a lot easier than Sedgewick's.

Make use of the course forum. If something is not clear ask questions on the forum. Though I found that Sedgewick's requirements specification are very comprehensive and unambiguous. In fact while doing the course I wished software requirements on the job were anywhere close to that comprehensive in real life.


The best way to handle test failure is read the output in detail and see why. If it’s performance (not fast enough) then I usually found that I’d missed a point in the lectures that greatly sped things up. None of the solutions require careful hand optimization, they are well designed to require the right algorithm and data representation. Another problem you may run into is correctness. Some of the tests have tricky edge cases and you can try to see from the test output what that case is and simulate it yourself. You’re not crazy though, some of the exercises are hard and I asked for help in the forums when I got stuck .


I had a similar problem. The problem sets often left me very confused, and were more focused on using the algorithm in unique ways (which is valid but not necessarily my priority) than understanding how they worked.

Really liked that Tim's course let you build an intuitive understanding of algorithms, so you can build them just by thinking about the problem, instead of getting bogged down in optimization details.


Where can I find this course?



Walk through of each algorithm with visualization is amazing in that course.


Not your usual answer for HN, but the best online courses I've ever taken are Chris Orwig's photography stuff on Lynda.com. Most local libraries have a free subscription with Lynda, and the way he teaches photography/Photoshop/etc was so useful to learn during college. It's not math or machine learning, but the guy is an absolute master at his craft -- and offers some of the clearest explanations on his line of thinking when working on projects.


Learning How To Learn [1] by Dr. Barbara Oakley, Dr. Terrence Sejnowski available on Coursera & elsewhere.

[1] https://www.coursera.org/learn/learning-how-to-learn



Strong +1 from me. I actually took this course in parallel to the compilers course at my university and the videos by Alex helped immensely.


The "Bitcoin and Cryptocurrency Technologies" on Coursera helped me gain an understanding cryptocurrencies. Until I took that course I knew very little about the subject.

It's possibly a little dated now, but it's a good primer.

https://www.coursera.org/learn/cryptocurrency/

I'd love to hear what other cryptocurrency courses others recommend.

As many others mentioned, Andrew Ng's course on Machine Learning on Coursera was also very good.

https://www.coursera.org/learn/machine-learning


You might appreciate the Digital Currency MOOC from University of Nicosia, with Andreas Antonopoulos and Antonis Polemitis.

https://digitalcurrency.unic.ac.cy/free-introductory-mooc/

Latest live stream (with Andreas Antonopoulos) goes into Ethereum and alternative uses of the blockchain:

https://www.youtube.com/watch?v=PxyPNS5QmAI

Edit - Actually, the latest live stream is this one:

https://www.youtube.com/watch?v=h2aeToagyaA

Figured I'd leave both, since they cover similar topics


very interesting


Not a cryptocurrency course per se, but Dan Boneh's course on Cryptography[1] is an excellent introduction to most of the building blocks of cryptosystems, including the technology underlying most cryptocurrencies.

In terms of level, it is more than a little technical (programming exercises in both cryptography and cryptanalysis await you!), while still remaining far from rigorous (compared to, say, a graduate-level cryptography text).

[1]https://www.coursera.org/learn/crypto


Second this. Doing the homework assignments (especially the first one) helped me understand how transactions work and are validated.


CS50x (Introduction to Programming) [1]: Very well structured. Excellent and very Enthusiastic Teacher & staffs. It was the most fun MOOC I took

Learning How to learn [2]: Life changing. I wish I did it sooner.

ops-class (Operating Systems) [3]: This is by far the toughest MOOC I've taken. The Assignments are really tough. Although not impossible. Just the right amount of tough, I guess. I'm currently in the last few weeks and I've really enjoyed it every bit so far.

Interesting (Not Yet Completed): Introduction to Quantum Physics (2013) [4]: My god, I just love the teacher's enthusiasm. After few lectures, I realised I need to first brush up on classical physics before moving further (which obviously was the requirement that I ignored).

[1]: https://www.edx.org/course/cs50s-introduction-computer-scien...

[2]: https://www.coursera.org/learn/learning-how-to-learn

[3]: https://www.edx.org/course/cs50s-introduction-computer-scien...

[4]: https://www.youtube.com/playlist?list=PLUl4u3cNGP61-9PEhRogn...


You accidentally duplicated the cs50 link. Where were you taking the operating systems class? I'm very interested :)


Sorry. here's the link. You'd love it.

[3]: https://www.ops-class.org


Fast.ai's (fast.ai) deep learning and machine learning courses. No ads, good notes/forum, and very approachable material for anyone that knows basic coding.


Have you considered deeplearning.ai? I was on the fence between the two, but ended up taking deeplearning.ai after reading a review[0].

> The fast AI course mainly teaches you the art of driving while Andrew’s course primarily teaches you the engineering behind the car.

I'll probably take some of the fast.ai courses at some point, but the deeplearning.ai one was great.

[0]: https://towardsdatascience.com/thoughts-after-taking-the-dee...


I think it totally comes down to your learning style. If you learn best by tinkering with a running system and seeing how your changes affect it and piecing together its foundations that way (like I do), fast.ai is for you. Deeplearning.ai I think appeals more to people who do better with understanding the theoretical foundations before trying to implement something.


Why not both ? Both are excellent courses. I took deeplearning.ai last year. This year I am planning to complete fast.ai.


Nand2Tetris was very good. I think Coursera has it listed as "Build a Modern Computer from First Principles: From Nand to Tetris." The course does an incredibly good job of walking you through building a CPU starting with NAND chips.


I took the OCaml MOOC to learn OCaml programming. It had many portioned exercises, The video content was very high quality. The online code editor was pretty amazing as well, as it autoformatted the code as I typed it and even compiled and executed in the browser. Some of the problems required one to think outside the box.

https://www.fun-mooc.fr/courses/parisdiderot/56002S02/sessio...


do you know where the video lectures are uploaded to?

edit: i asked and i shall receive: https://archive.org/details/fun_ocaml_mooc


Paradigms of Computer Programming (https://www.edx.org/course/paradigms-computer-programming-lo...)

Amazing course, though it uses Mozart a little known programming language, drives home the functional paradigm in a lucid manner. I am surprised that Peter Van Roy's book (instructor of the course) Concepts, Techniques, and Models of Computer Programming is not as well known as SICP.


The Theoretical Minimum lecture series on theoretical physics by Leonard Susskind. Covers the basics in a very approachable way. I wish this had been available when I studied physics.


Introduction to Biology - The Secret of Life by Eric S. Lander (available on edX) was entertaining and educational at the same time. Not many MOOCs were able to keep me engaged to the very end and make me proud and happy when I've finished them. If you are interested in the cell biology and are looking for a way to start on the subject that one is highly recommended.


Linear Dynamical Systems by Stephen Boyd of Stanford: https://www.youtube.com/watch?v=bf1264iFr-w&list=PL06960BA52...

Programming Languages by Dan Grossman of University of Washington: https://www.coursera.org/learn/programming-languages


what's good about the first one?


I've also gone over those lectures a couple of times. I'm not even sure why I started watching them, since I knew absolutely nothing about linear dynamical systems before hand, but it really changed my life! It taught me techniques that I now use all the time, and I think are very neglected within my field (data analysis/forecasting).

If your not familiar with it, it's an extremely versatile framework for modeling and analysis of all kinds of systems. It will give you new insights into linear algebra, time series analysis, stochastic models, Fourier analysis, Laplace transforms, and many other areas.

He's a brilliant (and enthusiastic) teacher, and he has lots of resources on line, including a text-book length exercise-set which I've printed out and had bound because it is so awesome.


Sounds really good, I'll make some time to watch it. Thanks!


Over the past few years, I've watched a few courses on Udacity, Coursera and EdX. I prefer taking ad-hoc courses to fill knowledge gaps (statistics, AI, programming, math, etc.), so I can't give a full review of the complete Nanodegrees, Certificates, XSeries, etc. I usually watch the lessons as needed without completing the entire course; mixing and matching MOOC courses with video learning sites (e.g. Datacamp, Youtube channels, Khan Academy, Egghead, etc.)

If I had to pick a MOOC platform, I prefer Udacity's more hands-on approach, but enjoy courses on EdX and Coursera. The quality of all three MOOC platforms is excellent. It's an amazing time for autodidacts!

If you're starting from scratch, without any background knowledge, the certificate programs with access to mentors are a great place to start. The curriculum is designed by industry professionals and/or experienced professors. This saves you time, keeps you focused and offers a place to get help when needed.


Do you have any recommendations on statistics for beginners?


Udacity has two free introductory statistics courses that they recommend prior to starting their AI nanodegree program:

Intro to Descriptive Statistics [https://www.udacity.com/course/intro-to-descriptive-statisti...]

Intro to Inferential Statistics [https://www.udacity.com/course/intro-to-inferential-statisti...]

Khan Academy also has very in-depth coverage of statistics, starting from the basics. https://www.khanacademy.org/math/statistics-probability


if you want to focus on Statistical Learning, I can recommend Introduction to Statistical Learning Using R[1] by Prof. Hastie and Tibshirani.

[1]: https://lagunita.stanford.edu/courses/HumanitiesSciences/Sta...


I found the lectures entertaining and the exercises of a much lower quality. Not enough of them, shallow and ambiguously worded.

I got something like 90% on the edx MITx probability course and was barely getting 50% for the above mentioned Stanford stat learning course for the 5 weeks of it I completed. I mention the MIT course, (which I highly recommend fwiw) only to support my view that I don't think my experience is aptitude or workload related. But as ever YMMV.



Kind of a random one but Coursera's Audio Signal Processing for Music Applications was a ton of fun. I had basically no exposure to either the signal processing or the music side of this course and still learned a ton. Inspired me to mess with software synthesizers as well as go back to linear algebra; opened up a whole bunch of avenues for further study.


I like the dialogue between Hastie and Tibshirani in their statistical learning course from Stanford [1]. I found the accompanying ISL book and c-cran depositories helpful for when I wanted to go deeper beyond the lecture.

[1]https://lagunita.stanford.edu/courses/HumanitiesandScience/S...


favorite: the ancient greeks: good teacher: https://www.coursera.org/learn/ancient-greeks

other favorite: absolutely insightful about Russia https://www.coursera.org/learn/russian-history-lenin-putin

history of the modern world: really good just with headphones: https://www.coursera.org/learn/modern-world https://www.coursera.org/learn/modern-world-2

ancient assyrians: https://www.coursera.org/learn/organising-empire-assyrian-wa...

best was "Social Psychology" by Scott Plous/Wesleyan University. inexplicably gone now from Coursera and internet afaikt


  Social Psychology
It is available on AcademicTorrents with seeders, if one is so inclined.


Intro to finance - Gautam Kaul I am not sure if they still offer this course for free. I took it in 2011 and I really like it’s homework assignments. Gautam is also hilarious in his teaching style.


I've taken it around the same time, too.

To this day the name of the professor brings a smile to my face. If I remember correctly, I didn't even plan to take this course (had no interest in finance), but after watching the Intro video I was hooked.


I have forgotten about it until this comment. Prof Gautam Kaul's MOOC was the first course I took on any MOOC. I did not finish it, mainly because it became very mathematical towards the end and I couldn't keep up. The course gave me appreciation for many things in finance, including personal finance. It's not exaggeration to say that that MOOC was a trigger to seek pay rise, contribute more to 401K and few adjustments in personal finances.

A good reminder and greatful to MOOCs and this course.


Programming Languages, Dan Grossman (Coursera has split it into 3 parts now): https://www.coursera.org/learn/programming-languages


I really enjoyed Discrete Optimization, Pascal Van Hentenryck, Coursera. [1] I did it in 2013 and it looks like it's changed a little: vehicle routing seems a good, practical topic right now. Optimizing systems is one of my favorite pleasures, so this course was great for me.

[1] https://www.coursera.org/learn/discrete-optimization


A Brief History of Humankind by Yuval Noah Harari on Coursera.

There is also a book (that I have not read) called "Sapiens: A Brief History of Humankind" which I think was quite popular. It was not quite was I was expecting yet it was very interesting and enlightening.

Also, it's been mentioned, but Databases, by Jennifer Widom. Stanford.


The Hardware/Software Interface from the University of Washington (previously offered on Coursera). As a non-CS major, it gave clarity to a lot of the magic that happens when you write code. Fabulous course. https://courses.cs.washington.edu/courses/cse351/


I can confirm! Had the exact same issue and this was very helpful.


Science of Everyday Thinking: https://www.edx.org/course/science-everyday-thinking-uqx-thi...

I took the first incarnation of this and it was consistently interesting, entertaining, and useful. A good romp through cognitive biases, decision-making to counter them, the scientific method, skepticism, memory and learning, and more. I've started and dropped a lot of MOOCs. This one stands out because I was consistently eager for the next installment to drop.


I really liked Geoff Hinton's Neural Networks for Machine Learning (https://www.coursera.org/learn/neural-networks). It goes into a lot of depth (much more so than Andrew Ng's Machine Learning course) and is fairly challenging.


MIT OpenCourseWare Algorithms https://ocw.mit.edu/courses/electrical-engineering-and-compu...

Watching them throw seat cushions as prizes was funny.


Does this cover data structures (stacks, queues etc.) as well?


Most fun and learnt a lot in Introduction to Mathematical Thinking taught by Keith Devlin. I did this course from Coursera in 2012. The most fun part was the forum where students collaborated to discuss and gain better understanding of the problems.


I'm surprised no one has mentioned Learning from Data: https://work.caltech.edu/telecourse.html


Robotics, UPenn: https://www.coursera.org/specializations/robotics

Excellent introduction to the algorithms that underlie control systems for robots. For the assignments, you program Matlab simulators of robots. It is comprehensive and not dumbed down: plenty of calculus involved! I loved it.


Udacity's Self-driving Car Nanodegree by a wide margin.

From the rest, MIT's Underactuated Robotics (Boston Dynamics stuff) was pretty rad, Udacity's Deep Learning Foundations Nanodegree was very useful, Ng's Machine Learning was made super easy. The School of AI's DApps/Blockchain course so far looks pretty good as well.


Algorithms by Tim Roughgarden on Coursera


Definitely agree with this one. It's called Algorithm Specialization on Coursera. I'm now on course 3 and it's definitely helped me a lot in thinking about how reason about algorithms.


One of the best algorithms class I have taken. I liked his way of introducing new concepts and intuition behind them. He really enjoys teaching algorithms.


I'm going to go off the beaten path here. I really enjoyed the edX course Molecular Biology (MITx - 7.28.1x). They teach DNA replication and repair.


I've taken "From NAND to Tetris" by Noam Nisan and Shimon Schocken while at high school. Very nice explanation of the whole stack.

As the name suggests, they teach the necessary to build your own computer, assembler, language and finally a simple game.

I would say it goes to an "appropriate" level of detail. You certainly won't become an electrical engineer and game developer with it, but it gives great insight on all layers and how computers actually work, and explains concepts such as pipelining.


This course was excellent. After years of self study it really pulled everything together for me.


This is going to be one of those threads that I'll upvote and bookmark and then not revisit till years later.

Any idea on how to start setting aside time to take a MOOC? For those of you taking a MOOC, how do you structure your week? It's been years since I've been in college.


It all depends on your work/life schedule, but for me, I have been successful at meeting my learning goals when I do two things:

- Set aside a discrete amount of time for coursework, and stick to it as much as possible

- Do SOMETHING in the course at least once per week, even if it's just watching one video

For the last course (or Udacity Nanodegree in my case) that I completed, I set up this schedule to fit my work/life (I have an infant):

- Watch course videos/do in-class exercises for 2 hrs on 1-2 days after work or during lunch break each week. My goal was to complete all the course videos that went with a project, so that I would be able to do 1 project per weekend. For longer/more complex topics, I would have to stretch this to one project per 2 weeks.

- Complete 1 project every weekend while my baby napped (total 3hrs per weekend day). I usually was able to complete the project during this allotted time, but sometimes had to work at night after putting baby down.

With the above schedule, I was able to complete my program within 3 months, which was slightly ahead of the program's recommended schedule.

You may need to adjust the schedule as you go (life happens) but the main thing is to KEEP GOING, and do your best to visit the classroom and do something - anything - at least once per week.


I currently have the same issue as my priorities are currently different. Back in 2011, I took all three MOOCs offered (pre-Coursera and pre-Udacity), completing all assignments. Then in 2013, when I had more free time available, I took seven more courses.

It was mostly by working till late at night.

It helped to start on new lectures and assignments early in the week given unpredictability of time slots available for studying. Once in a while, I was late in submitting assignments, losing a few points but managing to get A grades still.

Watching the videos at double speed was a boon. I could not have completed the courses without that. Only when I was unable to follow would I rewind and watch the segments at 1x or 1.25x speeds. The technology for speeding up sound along with the video had just come, I felt so lucky for this. Only two courses where I was not able to speed through were those which were completely outside of my domain (Economics and Human Physiology).

I never went through the optional book recommendations, if any. When the subject matter was not explained well enough in the lectures, forums typically supplied the answers within 24 hours of the lecture.

In one of the courses (Compilers), I stopped doing the assignments in the middle as they were requiring a lot of time while not adding a matching value.


It's really tough for me to set aside time for a MOOC, even if if it's absolutely critical-path subject material. So, the one or two I actually spend time with each year teaches something that is of a true investment.

If you are already time-strapped, don't stress yourself over things you don't have the time for, but make time if it will benefit you.


Algorithms I and II by Tim Roughgarden on Coursera -- amazing teaching style with a lot of depth and math background.

ML by Andrew Ng is also another great example of a MOOC that could be executed very well.

From non CS related courses I really liked Intro To Finance by Gautam Kaul, also on Coursera.


Professor Kagan's class on Death from Yale is absolutely fantastic and should be general class taught imho. https://www.youtube.com/watch?v=p2J7wSuFRl8


Colt Steele's the Web Developer Boot Camp was the first online course I took. I was committed to a career change/learning how to program/do web development and his course was the structure I needed at the time. It helped me land my first coding gig too. Thanks Colt.

But now I realize how much I don't know :) and why the CS kids I work with have a leg up. I've tried making my way through teachyourselfcs.com, mostly just dipping in here and there. But I've also learned that staring at a glowing rectangle 8+ hours a day doesn't bring me as much joy as does collaboration/empathy/creativity, and that I'm pretty good at design/product stuff (not saying programming can't also elicit said feelings).

Life is one big learning journey, and I'm so grateful that one of the by-products of the internet has been the democratization of learning. For $10 dollars and some work ethic you can learn enough to land a completely new job. The paradigm of 4 year college is waning, and that's a beautiful thing.


Power and respect to you for doing what you want. I strongly disagree that a $10 course gives a person the same learning as a 4 year university degree, I have worked with people that have been to university and people that “got” into the job and there is a large difference. Of course that isn’t always 100% true, there are exceptional people. I’m sure this will be down modded


Introduction to Mathematical Thinking (https://www.coursera.org/learn/mathematical-thinking). Aims to teach you what it is like to think like a mathematician. Covers the elements of topics that you probably encounter in the first semester of an undergraduate maths degree: logic, induction, proof construction, real analysis, etc.

Machine Learning (https://www.coursera.org/learn/machine-learning). I'm still working through this course but am finding it extremely interesting. I find that having to implement things in matlab/octave gives you a deeper understanding than using a framework like tensorflow or keras.

Both of the above courses have good instructors, which I think is the main factor that makes a good mooc.


I've been wanting to learn how to sketch. Has anyone taken on of the drawing courses and successfully brought their skill level up from nothing to being able to do recognizable drawings?


http://drawabox.com/

This is pretty good material for fundamentals. I used it myself to learn.


Some youtuber gave a code for 3 months free of Skillshare, which gave me the impression of being a Coursera for all things design. I already knew how to draw, so I can't say how it is for a newbie, but I did pick a couple new tricks (namely, portraits in Photoshop and watercolor houses).


David Silver (now of DeepMind, leading their reinforcement learning group which has had so many big high profile successes) has video lectures for his introduction to reinforcement learning. It's very thorough and uses a good, free textbook, and the programming projects are interesting but also reasonable in scope.


I think I've only really taken one MOOC, that was Shiller's course on Financial Markets. It's a bit slow, but he has a lot of good anecdotes.

https://www.coursera.org/learn/financial-markets-global


Gilbert Strang's linear algebra lectures on MIT OCW

Donald Kagan's introduction to ancient greek history on open Yale courses


Nand2Tetris (part 1)


The second part is awesome too.

The first part shows how to design an unoptimized and simplistic, but complete and working 16-bit CPU and RAM from logic gates.

The second part builds a whole software stack on top of it using a virtual stack-based VM:

    - CPU assembler;
    - a (AOT) compiler from the VM opcodes 
      into the CPU assembly;
    - a compiler from the high-level language 
      called Jack (an educational mix of Java/C 
      with many complex parts removed) into the 
      VM opcodes;
    - a standard library for the Jack language 
      (Screen/Keyboard/Output/Math/String/Array/
      Sys/Memory classes), including writing your own
      memory allocator and drawing lines/circles 
      and bitmapping glyphs into video memory 
      for text rendering;
    - your own project (usually a simple game and 
      sometimes marvels like [0]) written in Jack 
      on top of all of that;
The courses are definitely very challenging and some previous exposure to the topics is desired.

[0] https://github.com/QuesterZen/hackenstein3D


Wow, someone made an FPS in Jack on the Hack computer? Crazy!

(Just completed parts 1 and 2 last week on Coursera btw, really opened my eyes!)


I'm sure part 2 is great as well, I've only had time to do the first part so only wanted to speak to that. The way it jumps up and down the hardware stack is a very good tool from a pedagogy standpoint - doing assembly language before the CPU really informs why we want the CPU to be set up in the way it is.


Seconded, with part 2. I didn’t major in compsci, so I had never learned how computers work in any deep sense, and this was really eye opening. It takes you through how to build a cpu and then how a succession of binary instructions produces interesting behavior, and then how you can layer abstractions on top, like assembly language and stack operations, and then how to compile code down to those binary instructions and what has to happen at the OS level for this code to run.

It’s also opened my eyes to how much more I still have to learn!

You can do parts 1 and 2 at the same time, btw.


Came here to post this, part 1 is an absolutely amazing overview of computer organization. Part 2 is decidedly more difficult, but very good as well.


https://courses.knowthen.com/p/elm-for-beginners

Elm for Beginners, and the followup course. The first one is free and does the 70% case of the language.

Well organized, good pacing, good content.


without a doubt: Calculus in a single variable with Robert Ghrist https://www.coursera.org/learn/single-variable-calculus

for lots of people here it'll revisit some material you learnt at school but it does go further and the materials are fantastic and the exam at the end is no pushover either.


the MIT Introduction to Computer Science and Programming Using Python on edx is beginner-level, and I took it a few years ago, so it might not be best for the people who read HN---but it's really good. Best introductory-level MOOC in anything I've ever seen.


I'm surprised no-one had mentioned YC's Startup School! We did the Founder's Track last year and it's by far the most useful MOOC for my startup and I. We had an awesome YC alum as an advisor and a weekly group office hours chair.



Learning How to Learn: Powerful mental tools to help you master tough subjects

https://www.coursera.org/learn/learning-how-to-learn


I enjoyed Game Theory [0], it makes you get a different perspective on many situations.

[0] https://www.coursera.org/learn/game-theory-1


CS50x and Stanford's Startup Engineering one.

Got me into programming and part of an exclusive club of MOOCs I've started AND finished.


+1 for Chuck Eesley's startup engineering one! how did your team experience pan out?


Balaji and Vijay version actually. I think it was only actually offered once on Coursera.


Fundamentals of Operations Research by G Srinivasan. https://medium.com/@jossctz/google-kubernetes-engine-default...

It is a great course for non management majors to get a sense about how operations work. In fact, it is meant for non-management students because the course is originally taught at an engineering institute.

The instructor is a great figure in Operations Research. He is exceptionally knowledgeable and more importantly, clear.


Do you have a url? I googled and found just lectures on youtube.


Curious myself, and I found this:

https://onlinecourses.nptel.ac.in/noc17_mg10/preview

As someone into OR myself, I'd like to see if it will be formally given again.




Programming is for everybody on Coursera. Taught with Python, extremely approachable for non programmers. Teaches you fun stuff including how to use sqlite and how to scrape websites, use JSON APIs, and more!


I found Udacity CS344: Intro to Parallel Programming (CUDA) a great class, not only from a practical standpoint of learning CUDA but also had some decent explanations/whiteboarding behind the algorithms


Think that was taken down for some reason. I tried watching it last month



That's unfortunate if true. I have a few unwatched videos from the course, so it still remains for me.


fast.ai is outstanding, if you're at all interested in deep learning.


Circuit and electronics MITx 6.002. Great lectures, a joy to watch. Put me on the path to EE full-time.


Really outstanding class! Prof Agarwal was an excellent lecturer, the course material was well prepared, and lots of tutoring material was made available.


(Folks have already mentioned Odersky and Grossman for grokking functional programming)

FutureLearn has an introductory Dutch course. I've only learned languages from the Romance family previously, so it was a worthwhile experience. (Dutch-Australian in-laws) It's a taster course requiring further study but well worth satisfying your curiosity.

Dutch (and Frisian) may provide a stepping stone to understanding Old English - there are recognisably 'Germanic' traits.


Interesting how the myriad other mooc platforms, largely non-US, aren't mentioned.. futurelearn, novoed, ....

This makes me wonder what English speaking courses are being missed..


I track mines here: http://pa-mar.net/Study/Online/OnlineCourses.html

Best - in no particular order: Introduction to AI (Stanford), the one who started it all, Coursera Data Analysis and Introduction to Operations Management by University of Pennsylvania.

You can find more details about all of these in the page I linked above.


Andrew Ngs machine learning course as well as both Princeton Algorithms courses were the most challenging and valuable.

I did all the Scala ones a few years ago, the most interesting was building a distributed key value store.

There’s a really online interesting course on Milton at Yale. Great lectures but I didn’t try to work through any of the assignments.

Not really a Mooc but I recommend both Duolingo and Memrise for learning language skills on your phone


Not a full MOOC, rather a video lecture series, and one I cannot recommend enough is ‘Human behavioural biology’ with Robert Sapolski. Mind blown. Have listened to some multiple times. I found it to be a fascinating tour of so many facets of biology.

https://www.youtube.com/playlist?list=PL150326949691B199


Pretty useful and well taught: React JS parts I and II in Codecademy, JavaScript promises in Udacity.

Just pretty fun: Intro to Machine Learning in Udacity

As a general comment, I would like to say that MOOCs tend to be superficial and that the best way to learn a new technology or paradigm is just to read the docs and try hacking on a project. However, MOOCs can be a good format to simply get a broad perspective on some topic though.


Can anybody recommend any courses for learning WebGL?


I haven't taken it myself (but will sometime in the future), but I've read great things about this Udacity course taught by Eric Haines: https://www.udacity.com/course/interactive-3d-graphics--cs29...

You can read a couple of reviews here: https://www.coursetalk.com/providers/udacity/courses/interac...


I've done a few from coursera and the best MOOC's I have taken are:

Machine Learning = really good overview of ML, well explained. I did this first but struggled with some of the maths, so took maths refreshers afterwards

Calculus 1 - I have never had a maths class where the Professors made the content so interesting and with such enthusiasm.

Human-Computer Interaction - worth doing if you are building websites / apps


I loved Coursera’s Statistical Molecular Thermodynamics course taught by Chris Cramer from U. Minnesota. Mind expanding. Some calculus.


The best teaching I've seen in a MOOC is in Introduction to Financial Accounting / More Introduction to Financial Accounting by Brian J Bushee on Coursera. (This used to be one course back when I took it.)

The subject matter is probably not that interesting to most hackers but it is a great example of making the MOOC-format work.


https://www.coursera.org/instructor/danariely One of the best courses I enjoyed. Have become a fan of Prof Dan. Have read his books on Irrationality and thoroughly enjoyed.


Andrew Ng's deep learning course. For me it struck the perfect balance between being fast and 'easy' enough to not take up too much of my time while still being deep enough that I finally understood the basic math behind deep learning.


MoMA's "Fashion as Design" course was pretty interesting: https://www.coursera.org/learn/fashion-design/


I've recently discovered that videos don't cut it for me. I fall asleep or get distracted doing side research of what is being discussed.

The only one I've finished is edX's CS50. As an electrical power engineer, I used to code in matlab as a hobby: Optimization problems, Power flows, and stuff.

This mooc gently took me by the hand and gave me what is basic to change my career. I quit my job as an EPE and now work as a software engineer, and now I can't stop learning. The course is real fun and challenging at the same time.

Another one that is interesting is mind and machines in edx, kinda thoughtful and different and yet interesting approach to artificial intelligence.


Not sure if this counts but recently I started the “elixir for programmers” course and I’m loving it. It skips over the low level stuff and starts from “I know how to build apps in XYZ other tool, how can I get up to speed on idiomatic Elixir” which is exactly the kind of thing I was looking for.

You follow along building the same app as the instructor. Lots of hands on coding and experimentation between clips. I’m not an expert but my confidence level with elixir is very high now.

https://codestool.coding-gnome.com/courses/elixir-for-progra...


I have created a Github repository listing all of the "main" MOOCs here.

https://github.com/Tuccinator/hn-moocs


Machine Learning by Andrew Ng on Coursera is the best MOOC I've taken so far. It has great explanations on complex topics, fun activities, and a really well put together curriculum on machine learning.



Math for CS by Tom Leighton (founder of Akamai) - MIT Open Courseware


NAND to Tetris


"Learning How to Learn" (already cited) and "Critical Perspectives on Management" (by Rolf Strom-Olsen, available on Coursera, starts in 2 weeks!).


Is MOOC a commonly used term? I don't believe I've ever seen it before this post. Based on context, the default Wikipedia redirect [1] for it seems correct, but I'm surprised I never knew that concept had a name (and an acronym at that).

[1] https://en.wikipedia.org/wiki/Massive_open_online_course


Yes, very common. Looks like it took off around 2013: https://trends.google.com/trends/explore?date=all&q=mooc


I'd never heard it before either. It's just "online course". guess they wanted to feel cooler with an acronym?


Online courses that aren't MOOCs either:

1. Allow a limited number of students to sign up for a run of the class, which is on a specific schedule, and there's high interaction with and feedback from other students and the instructor. 2. Allow unlimited students to sign up, often at any time, but at most there's a forum or mailing list for participants to interact with each other. Many are just a series of videos or articles, maybe with some assignments, but there's no pressure to complete them.

MOOCs try to combine those. Unlimited students can sign up for scheduled classes. While the class is in session, students are assigned to grade each other's homework, so there's both pressure and interaction.

Most MOOC providers let you "audit" a class for free, which is basically a type 2 online course.


Ah. that makes sense; openness plus motivation. thanks for explaining.


The AI class (Udacity now) with Thrun and Norvig was fun.


I had found it useful also. It has a lot of bugs though. The instructors often faced the heat on the forums for not thinking the problems through. It's hard after all to be teaching a group of some X0,000 students, noting that some then would have intelligence levels well exceeding the instructors (no matter how accomplished they are).


Dan Boneh's Cryptography Part I on Coursera. Will we ever get Part II? Enrolling for Sept 2018 according to Coursera.


Part I was great. Been waiting forever for Part II. If it ever happens I will have to retake Part I to refresh everything I forgot.


Wondering the same! It looks like Part I has been around since late 2015/early 2016 based on the course reviews.


2012


Part II has been postponed year-by-years since Part I came out.


Since no one has said it yet, /r/ludobots is pretty good. It's a University of Vermont course centered around ML for robotics. Specifically, the goal is to train a procedurally generated robot to walk using NNs. I wouldn't say it's the best I've ever taken but it's pretty unique and great fun.


I took a few courses by the same guy at school. Probably the best professor I had at UVM


If someone likes to rip all the links from this wonderful discussion, please use this script and paste it in browser console. https://gist.github.com/mohanmca/481056956ca618a3b21a2b3a0d1...



Can anyone recommend course about assembly ? Which focuses especially on embedded systems (arm, avr, pic archs) ?


Azeria Labs has a good introduction to ARM assembly and ARM exploitation. https://azeria-labs.com/writing-arm-assembly-part-1/


I'm a big fan of Chris (the GoRails.com guy): https://courses.gorails.com/

Great course.


• MITx "Introduction to Solid State Chemistry" [1]. I've never been good at chemistry, but this course managed to make it clear to me.

• MITx "Circuits and Electronics" [2][3][4] (three links because they have split it into three courses since I took it). Most electronics courses have not worked well for me. Some fail by using analogies that don't work for me. The analogies are either to things I don't understand, or to things I understand too well compared to the target audience for the course.

The latter might seem odd--how can understanding the analogous system too well cause a problem? It's because there usually isn't a perfect match between behavior of the analogous system and electronics. The more you know about the analogous system, the more likely you are to know about those places that don't match. If the author expects the students will not know about those parts, they won't mention the limitations from those parts. So you can end up expecting too much of the analogous system to apply.

Other courses have not worked for me by being too deep and detailed. For instance at one time I knew, from a solid state physics intro I took, how a semiconductor diode worked at a quantum mechanical level. I could do the math...but the course gave me no intuition for actually using the diode in a useful circuit.

The "Circuits and Electronics" course struck for me a perfect balance.

• MITx "Computation Structures" [5][6][7]. At the end of this three part course (of which I only took the first two parts), you will know how digital logic circuits work at the transistor level, and you will know how to design combinatorial and sequential logic systems at the gate level, and you will know how to design a 32-bit RISC processor...and you will have done all those designs, using transistor level and gate level simulators.

As I said, I only took the first two parts (didn't have time for the third). In the first two parts we did cover caching and pipelining, but we didn't use them in our processor. I believe that in the third part those and other optimization are added to the processor.

• Caltech "Learning From Data" [8]. The big selling point of this course is that it is almost the same as what Caltech students get when they take it on campus. The only watering down when I took it was the homework was multiple choice so it could be graded automatically.

The most outstanding thing about this course was Professor Abu-Mostafa's participation in the forums. He was very active answering questions. I don't know if he still does that now that the course is running in self-paced mode.

[1] https://www.edx.org/course/introduction-solid-state-chemistr...

[2] https://www.edx.org/course/circuits-electronics-1-basic-circ...

[3] https://www.edx.org/course/circuits-electronics-2-amplificat...

[4] https://www.edx.org/course/circuits-electronics-3-applicatio...

[5] https://www.edx.org/course/computation-structures-part-1-dig...

[6] https://www.edx.org/course/computation-structures-2-computer...

[7] https://www.edx.org/course/computation-structures-3-computer...

[8] https://work.caltech.edu/telecourse.html


Also did Computation Structures from MITx and I think it was the best of the roughly 20 MOOCs I took. Too bad few people seem to have done it as well.

In the third part of the course, the content moved to the software connecting to the BETA, the processor we built in earlier parts. The last problem set was to build a very simple OS, in assembly, with interrupts, privileged mode, and running up to 3 concurring processes, all in less than 1000 instructions, macros included.


Cryptography I by Dan Boneh in Coursera.


I enjoyed sabremetrics 101 at edX. Some statistics, light coding (SQL and R), history and baseball.


Charles Fried - Harvard Law Contract Course. Super nice and just a very good class to understand


I took Cryptography I (Boneh) and Automata (Ullman) on Coursera and they were both great.


Second the Jennifer Windom course. That's been the most useful course to my career.


The odersky one is good.


AI by UC brekely, was one of the best course on edx


edX/MIT 8.05 QM II Barton Zwiebach Thought he did a really good job with the material, very clear.

Agree with others on Windom, Ng and Page.


Buddhism and Modern Psychology by Princeton. This course was just mind-blowing for me. It talks a lot about how our evolutionary survival mechanisms prevent us from seeing the world clearly. If anyone has taken similar courses would love to hear.

https://www.coursera.org/learn/science-of-meditation


This is an absolutely amazing course! It's also about how Buddhism actually guessed so many things correctly about how our brains work. The author explains about Buddhist ideas and almost for every of them, there is a scientific experiment, that indicates it could be true.


I will +nth this course. Tying an ancient philosophy with modern science lends both a lot of credibility. Note that religious aspects are not addressed. Practical aspects of buddhism (such as a regular meditation practice, approach to emotions, etc) are discussed. I find it very useful in day to day life.


This thread is ABSOLUTE GOLD!!!!




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

Search: