One of the stated aims of the course is to get you in a position where you can read the Financial Times without going cross-eyed, and it works really well to give a clarifying framework for understanding market concepts outside the course's scope.
Another I really liked was "The Modern and the Postmodern" by Michael Roth. I don't know if that course would work well "at your own pace" though, the reading and peer essay feedback was a big part of it.
Another one I'd recommend if you enjoyed those two, although in a very different vein is Bloom's Moralities of Everyday Life, which is supposedly a psychology course, but really goes into comparative culture questions that IMO make it closer to an anthropology course. https://www.coursera.org/learn/moralities
It's fine in teaching you introductory (although it seems to cover more basics than a lot of other courses do, somehow) ML. But more importantly, it's a well designed course. You can see how each piece uses previous pieces and how it solves problems and edge cases not covered earlier.
That said, I'm yet to see better coverage of that topics (If someone knows, I'd really like to get them. I forget pieces every now and then, and having more efficient refresh method is always welcome).
https://www.youtube.com/watch?v=UzxYlbK2c7E&list=PLA89DCFA6A...
instead of the one that started Coursera:
https://www.youtube.com/watch?v=PPLop4L2eGk&list=PLLssT5z_Ds...
At the birth of Coursera in 2012, R and Python were already clearly established in the field of data science. R was the dominant open-source language for data science, with Python very close behind (and already gaining ascendancy among folks who identified with "machine learning" rather than "data science"). I remember Matlab/Octave being more associated with academics/students in EE (signal processing, wireless communications, and the like); if you want clear insight into matrix operations, Octave is great.
I think Ng made a very conscious decision at the time to eschew built-in functions and not get distracted by trendy languages - hence the use of Octave to learn how to implement algorithms at the most basic linear-algebra level.
Even at the time his decision was not well understood nor popular - way back then I remember people asking "Why Octave instead of R or Python?"
In those classes that did use Matlab, there were quite a few people sticking to Octave, though it wasn't 100% compatable. And when I got to Ng's course, I (and I imagine a whole lot of others) were really happy to see he went 100% with Octave. Had he gone the Matlab route, the old course would be pretty worthless now.
We'll never know what happened behind closed doors, but I think Matlab was sponsoring some courses in order to get new people hooked on Matlab and it just didn't pay off.
I agree with a sibling comment that it was python and R were well established at the time.
Also makes you think about how comprehension is closely tied to expression even for ostensibly similar languages.
While it does talk through the basics of ML, it is really barely a taster. It doesn’t leave you with any skills, other than, if you buy a book and work through it, you will know what a “decision tree” is ahead of time.
With something like ML, the real value is in the deep nitty gritty, building intuition about methods you use, fighting the unfair battle against broken data etc, and all those things were missing to me.
Edit: It gives an important understanding on how our minds function and how we learn, which, I think, forms the basis of effective work. Knowing how to work, and being an effective learner are incredibly important qualities in life.
A lot of things in that course feels like it fairly obvious when you hear it, but often you might not have thought in those directions, and often it helps to get those things spelled out.
If I had had that course in my early teens that would have helped me a lot.
One thing that stood out for me was that I realised that the basic concept of the course was already familiar to me. Breaking down something new to learn into chunks, then forming a high-level picture of the unknown landscape and then starting to connect those chunks as you go deeper into the details.
I wonder how many people have already in some way used that process to learn something new without realising that it is indeed the most efficient way for the brain to learn a new concept.
This topic about the top Coursera courses or which ones you recommend comes up regularly here on HN.
On top of the mentioned Learning How To Learn I can recommend the following:
Terrorism and Counterterrorism: Comparing Theory and Practice by Edwin Bakker [1]
Securing Digital Democracy by J. Alex Halderman [2]
Cryptography I by Dan Boneh [3]. I didn't finish this one, but its very good...
[1] https://www.coursera.org/learn/terrorism
- You will get good at anything given enough practice, so don't worry about thinking you're bad at X
- As you get good at X, you will start to like it
- Pomodoro
I'm over-simplifying of course, but I felt like the course provided a lot of concepts with very little actionable advice.
It's a very popular course because it "feels good". It is motivating, and has a very positive message. I wouldn't consider it very useful for already highly motivated and self-driven people.
I'm highly motivated and self-driven. This course isn't about motivation. It's about how we learn and how best to take advantage of that.
But I will say that knowing how the brain works and how we learn has motivated me to change my study habits. Knowing that I learn in my sleep motivates me to prime my brain for learning every day to take advantage of that. So I rarely skip a day now. Even ten minutes gets my subconscious primed and working while I sleep. The mental models you get out this course will last a lifetime.
Nisam/Schocken: "The Elements of Computing Systems"
I have only finished the hardware part, so far, but skimming the rest I can't find Tetris anywhere. Is that really missing, although it's in the title?
(I know that you can program Tetris on the machine you build in the course, but is it an exercise somewhere?
I wrote a Tic-Tac-Toe variant - but you could write anything, including Tetris.
In the second course you build the programming language that could be used to write Tetris, though I don't think you actually go through it as an exercise.
Note: you can also complete all the course materials just by going to nand2tetris.org.
My presentation slides promoting nand2tetris to the Austin python group: https://docs.google.com/presentation/d/1fGf2eZVOM2lHL8hFVyd2...
It's not an intense differential equations course, and I don't think you even need calculus to understand or complete the exercises. It has a lot of really great, well, explained, fun exercises like computing a gravitational slingshot, computing the spread of an epidemic, then N-body problem, and others. The exercises are solved programmatically, not with math equations.
America's Unwritten Constitution https://www.coursera.org/learn/unwritten-constitution America's Written Constitution https://www.coursera.org/learn/written-constitution
If you're American, you'll likely find both of these courses extremely interesting. What they (probably) taught you in grade/high school was very overly simplified, or just wrong. This is geared toward people who have no background in law. I don't remember there being amazing exercises to do, but there were a lot of mind blowing facts I learned about things the constitution does and doesn't cover.
That was then hosted on Stanford's own Lagunita platform (based on the edX platform I think.)
Stanford then split those 2 courses into 4 on Coursera's new platform - the same material I believe but packaged differently.
Stanford then closed its Lagunita platform and those original 2 courses are now offered on edX.
A similar story with Alex Aiken's excellent Compiler course and Jeffrey Ullman's Automata course too. I'm not even sure if they are still available on Coursera or not.
[1] https://www.edx.org/course/algorithms-design-and-analysis
[2] https://www.edx.org/course/algorithms-design-and-analysis-pa...
This is always a difficult question, because it's always "high school level math" which is rarely true. Then again, some algo courses focus highly on math and proofs while others focus more on implementation.
I also really liked "Discrete optimization" (https://www.coursera.org/learn/discrete-optimization). At the time that I took it it also had a competitive element where you would solve optimization problems and there was a leader board comparing all the students in the current batch. That was when courses still started in batches and were free so the experience would probably no longer be the same, unfortunately.
As a machine learning researcher I am on the one hand glad that folks are learning more about the topic. On the other hand, this is totally the wrong approach and it will teach you the wrong lessons.
The idea that you can just treat data as a uniform dump of tables and that grinding your way to high numbers is somehow worthwhile is simply terrible. The resulting systems won't work well in the real world and they produce horrific explanations of what is going on. This class teaches you not just the wrong tools, like boosting, it teaches you the wrong mental model.
I really can't think of a worse introduction to ML than this class. Even not knowing anything would actually be better.
My main takeaway from the course was definitely not that just grinding away for higher numbers is the right thing to do (but it might be a necessary evil in a competition context). The key thing I learned here was much more about paying very close attention that your validation strategy and your testing strategy are compatible because there are many ways you can mess it up, making your models valid in-sample only. Most of the other things I had done before were also more around SVMs and neural networks and getting some experience with decision tree based algorithms was interesting.
Obligatory, Stanford CS231n: Convolutional Neural Networks for Visual Recognition [2] The assignments are excellent and will let you implement a deephish network from practically scratch, before diving into modern frameworks and applications.
[1]: https://www.coursera.org/learn/statistical-mechanics [2]: http://cs231n.stanford.edu/index.html
However as I don't use this in daily life I pretty much lost all the knowledge again :)
Also pretend or real J.P Aumasson handle?
I'd like to know enough to be able to confidently use existing tools to encrypt data at rest, transit, pub/priv key, etc.
Would this course give me such a foundation to achieve this?
But then you probably shouldn't trust my opinion, because I'm not a domain expert (although I have been involved in security design together with people who are domain experts), and whatever understanding I had is probably somewhat rusty by now .
As a non-programmer but a decent mather, I thought it presented the materials in a way that was easy to understand. In my mid-thirties now, I feel like I could have handled this at 18 just fine--but not in a patronizing way. It was just very clear and the professor had a good sense of humor.
I just built my first time-saving Python program and it felt really satisfying. I built a few others that were cool but none actually saved me time. Very satisfying! At the end of the 3 courses (~60 hours) and some additional tinkering (~40 hours), I had the skills and that's pretty cool.
Had I taken this course when I was 18, I surely would have gone for a CS degree.
From my course notes, a nearly comprehensive summary of how the social sciences use models was presented:
16 uses of modeling outside prediction include from Epstein, Joshua M. (2008). Why Model?. Journal of Artificial Societies and Social Simulation:
1. Explain (very distinct from predict)
2. Guide data collection
3. Illuminate core dynamics
4. Suggest dynamical analogies
5. Discover new questions
6. Promote a scientific habit of mind
7. Bound (bracket) outcomes to plausible ranges
8. Illuminate core uncertainties
9. Offer crisis options in near-real time
10. Demonstrate tradeoffs / suggest efficiencies
11. Challenge the robustness of prevailing theory through perturbations
12. Expose prevailing wisdom as incompatible with available data
13. Train practitioners
14. Discipline the policy dialogue
15. Educate the general public
16. Reveal the apparently simple (complex) to be complex (simple)
I cannot find anyone else talking about this in the reviews; they are all glowing. Wondering if I’m crazy, if Coursera is glitching just for me, or if no one actually watched the videos.
Having said that and with the caveat that these probably changed since I taken them, I recommend the following:
- Cryptography - https://www.coursera.org/learn/crypto - great introduction to the fundamentals and math behind cryptography. A lot of theory but also some practical exercises. This is my top recommended.
- Machine Learning - https://www.coursera.org/learn/machine-learning - a good introduction to the basic of machine learning; focuses on octave/matlab and does not dive into frameworks like scikitlearn or tensorflow
- Introduction to Interactive Programming with Python - https://www.coursera.org/learn/interactive-python-1 - I took a course from Rice University on Python programming through making games that was fun. As far as I can tell, this is the modern incarnation in two parts.
- Software Security - https://www.coursera.org/learn/software-security - goes into stack / overflow exploits, tools for testing, and web-based attacks
- Functional Programming Principles in Scala - https://www.coursera.org/specializations/scala - this was a good introduction to scala and functional programming - it got me thinking in a different way
- C++ for C Programmers - https://www.coursera.org/learn/c-plus-plus-a - I think this was the first coursera class I took. This course dove into the C++ STL and a lot of modern features introduced in C++11.
That's surprising to me: wouldn't Coursera want learners to be reassured that whatever signalling benefit there is to completing a course will remain forever?
I took a few courses in 2013 just to see what MOOCs are really like and completed two (Programming Languages, as taken by many here, and Introduction to Mathematical Thinking, which IIRC was mostly about logic) which indeed are not listed under "completed" in my profile. I found them at https://www.coursera.org/accomplishments though.
Thanks for pointing that out! I have 11 courses in the accomplishments and just one in "completed" courses.
Anyway, I found it here: https://www.youtube.com/playlist?list=PLoRl3Ht4JOcdU872GhiYW...
The field moves fast so it's a little outdated now, but this course gave me a strong and deep foundation for understanding the techniques of deep learning. I was able to apply it at work later with great success. I think this course was more worthwhile than Ng's.
The assignments are completed in Java and cover the lecture material from the week. For example, your 1st assignment is to use a union data structure to determine if a grid percolates, similar to a coffee filter percolating.
One slight drawback with the course was that it was originally published several years ago, so the forums are not well moderates much more and some of the previous quizzes are no longer available. Also Princeton does not issue certifications of completion.
Still it’s the best online course I have taken in a MOOC.
The Modern World, Part One: Global History from 1760 to 1910: https://www.coursera.org/learn/modern-world (2nd part is as great as the first one)
Also at least some courses are paid-only - initially there were plenty of free courses. For example, even if you don't want a certificate for Deep Learning specialization, just to view videos require you to enter a credit card and agree to some dim conditions probably drafted by lawyers (and expected to be read by non-lawyers).
Coursera was great initially, with well taught courses. Now it's more of a gated community, much worse IMO than it used to be. Hope there are better offerings elsewhere.
It's quite accessible and a good introduction to artifical intelligence.
- Automata Theory by J. Ullman is also really good. It used to be on Coursera but is now on EdX (https://www.edx.org/course/automata-theory)
However, he didn't seem as passionate on the second part, decision languages. It's also a lot harder, yet is squeezed into even less time.
To help you assess my observation: I scored in the highest segment (IIRC 95%)... After taking the course, I would say I understand the regular expressions material fully, but not decision languages. I'm still confused about showing what complexity class something is in. e.g. the complexity class of determinng two polynomials are equivalent (PIT), like x(1 + y) + y and x + (x + 1)y.
I think public speaking is a very important skill that not enough people take the time to learn.
I quite liked the Web Development course taught by Steve Huffman (the founder of Reddit) on Udacity. It's possibly a bit dated right now.
https://www.coursera.org/specializations/cloudera-big-data-a...
1: https://chrome.google.com/webstore/detail/link-grabber/caode...
Professor Xavier Serra[1] is a highly respected veteran in the field.
It doesn't get very deep in terms of knowledge of networks, TCP/IP stack etc, it's a very lightweight course that's easy to get through, it was my gateway MOOCs years ago, instructor is great and there's great footage from the beginnings of the internet, it feels more like an interactive documentary than an online class.
Great course to learn about monetary systems, central banks and its effects on financial markets.
(Not just on Coursera, but also others. You can filter for the Coursera ones.)
https://www.complexityexplorer.org/courses/104-introduction-...
The course also covers some interesting, non-standard topics. In particular, I liked the lecture on a discrete version of calculus (https://www.youtube.com/watch?v=NHa8UgWigZk) which can be used to find easy solutions to series and recurrence relations (e.g. the "discrete anti-derivative" can be used to provide quick closed-form solutions to sums of the form "n^k from n=1 to K" - an example occurs at the 5:28 mark of the linked lecture, but some background from earlier in the video will be necessary to follow along).
The lecture videos are available on Youtube (https://www.youtube.com/playlist?list=PLKc2XOQp0dMwj9zAXD5Ll...), but I would recommend working through the problems on Coursera (especially the challenge problems) as well. I would also recommend that viewers watch the videos as 1.5x speed or faster. Dr. Ghrist speaks so slowly in these videos that I found it distracting.
For those who have some knowledge of the standard intro calculus textbooks, the level of rigor and difficulty in this course is above the Stewart book that many universities use, but below the Spivak/Apostol/Courant type of book that an honors course may use.
This used to be a single course, but Coursera split it up into 5 pieces, with somewhat unhelpful names. The sequence is "Part 1 - Functions"[1], "Part 2 - Differentiation"[2], "Part 3 - Integration"[3], "Part 4 - Applications"[4], and "Part 5 - Discrete Calculus"[5]. The first four parts names are reflected in their Coursera titles, but the "Discrete Calculus" course is titled "Single Variable Calculus" instead since it contains the final exam for the overall sequence.
It's also worth mentioning that Dr. Ghrist also has other video lectures available on Youtube (https://www.youtube.com/c/ProfGhristMath) for other math courses including a sequence on multivariable calculus called "Calculus Blue."
[1] https://www.coursera.org/learn/single-variable-calculus
[2] https://www.coursera.org/learn/differentiation-calculus
[3] https://www.coursera.org/learn/integration-calculus