I recently enrolled in Stanford's free Machine Learning class for this Fall semester. While reading through the syllabus, I came across this interesting discussion by Andrew Ng, the professor who is teaching the course:
Begin quote--- In this class I'm going to teach you a programming language, Octave, which will allow you to implement quickly the learning algorithms presented in the "Machine Learning" course. Octave is the language I recommend, after having taught this Machine Learning" (ML) course in the past, using several languages (C++, Java, Python/Numpy, R). Students are more productive, and learn better, when using high-level languages like Octave, compared to the others I mentioned. Often people prototype ML algorithms in Octave (which is a very good prototyping language) and only after succeeding in that step they proceed into large-scale implementations of the ML algorithms in Java, C++ or other low-level languages, which are more e cient than Octave when running time is the concern. By using Octave, students get huge time savings in learning and implementing ML algorithms. The most common prototyping languages used in ML are Octave, Matlab, Python/Numpy and R. Octave is free and open source. Matlab is also good, and could be used, but it is very expensive. People using R or Python/Numpy also produce good results, but their development pace is slower due to the more complex syntax in R or Python/Numpy. So, Octave is de finitely recommended for this course. End Quote-- Here's a link to the whole Octave tutorial paper for the ML course: * http://tinyurl.com/cabtdnf* After looking over Octave in the course tutorial, it seems to have stolen quite a few ideas from APL & J, but it has a ways to go to match their brevity and power. It would be interesting to try to do their homework in J instead of Octave, but I'm not sure I am good enough with J to carry it off. The homework assignments apparently are presented with 'hints' in Octave on how to approach each problem. Skip -- Skip Cave Cave Consulting LLC ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
