Unlike today, Python was not an obvious choice. In no small part because arguments that it was not fast enough for numerical calculations (right or wrong) held much more sway. In no small part (and as Ng mentions when explaining why Octave was used in the course lectures) because people will always argue over choice of programming language (perhaps the parent comment is a mild example). Pedagogically, using a 'big' language like Octave avoids getting bogged down in the sausage factory of modules and imports and namespaces and objects and list comprehensions and differences between the two major versions of Python and documentation rot associated with all the minor versions of the Pythons when it comes to examples.
In terms of learning Octave, it's not really significantly more or less knowledge than learning NumPy would have been. Irrespective of language the number of functions/methods necessary to manipulate matrices is pretty much constant...or as I heard someone say once, J has about the same number of language primitives as there are methods in Ruby's array libraries. Anyone starting from scratch will have two things to learn.
[1]: https://web.archive.org/web/20110923173848/http://www.ml-cla...
I'm not saying it was an obviously terrible choice and how could he have made it. I'm saying it made the course more difficult and less rewarding for me.
I got into many arguments about how computer science is math and so on, but machine learning is a set of techniques, there is no need for it to use math when it's not really needed.
So I gave up. I did not even manage to properly understand his explanation of linear regression, as I would have liked to implement my own. When I look online it's a myriad of equations, and no pseudo code.
I love mathematics, but when I'm programming I really prefer to use data, and not math.
Granted after you understand the math, you no longer need an equation, but simply a mental picture of what is going on (for example, I remember linear regression with projection of data onto a line or plane).
After you have a good foundation, I found often-times you can then ignore the details of equations and see the relevant parts (different forms of Bayes rule, projections, chain-rule, etc) and arrive at the general idea of a technique.
The interesting and hard part is understanding the technique, and I think that is probably the most bang for your bucks, as I assume you are proficient in programming already.
Instead of giving up you should push through that. Use what you know to get familiar with what you don't, rather than asking for things to be made accessible to you. Math is much older and bigger than computer science and refusing to learn it is over-specialization.
I don't care if it's accessible for me or not, it seems the guy is saying ML is the new electricity, lowering the bar won't only benefit me, but many other people who know programming and don't benefit from knowing the math.
Just my opinion. Many people and hackers learn by practice, not by theory.
Everyone learns by practice, but that applies to math just as well as programming. If you don't practice it, you won't learn it.
I don't see machine learning as a theoretical field of math, I see machine learning as a set of tools.
To me computers are the tool you use to practice math, and you don't really need to use mathematical notation anymore, unless you really dive into a very abstract subject. ML consists of applied methods. I don't think people want to learn the theory of machine learning, they just want to know the methods that works now, and maybe dive into more complex stuff later.
Also, IMO the implementation is not the core focus of the course. The key ideas are in the equations, and hopefully implementing them helps you understand the intuition behind those equations.
Everything I've read about the course suggests that the programming assignments are actually pretty easy. Hopefully I'll reinforce, rather than confuse the core concepts in translating them to this unfamiliar language.
But how will cheaters rationalize violating the honor code now?