HN2new | past | comments | ask | show | jobs | submitlogin

It's worth considering the choice of Octave in context. The first time Machine Learning was a full blown MOOC offering was in 2011, [1] predating the founding of Coursera. My impression is that even as far back as 2011, Ng's class was adapted from an existing syllabus.

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...



Maybe I unknowingly stepped into some long standing debate?

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.


Andrew Ng also talks about why he chose Octave in the courses. So it was definitely always part of a debate.


I was providing context for why the decision (good or bad) was what it was.




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

Search: