I just discovered GNU Octave, a free open-source alternative to Matlab.

I was wondering if it would be wise to teach an "Intro to Matlab" course using Octave instead of Matlab. My motivations are both idealistic (i.e. I want to support open source software) and financial (I want to save my university some money on licensing fees).

My concerns are that if Octave is too different from Matlab, it would be difficult to find textbooks and other teaching resources, and that when my students make it out into the real world they will most likely have to use Matlab and so they may be disadvantaged if they learned Octave instead.

Does anyone familiar with Octave have any insight?

EDIT: Since a few of the initial comments and answers are focusing on the name of the course, I want to clarify that there is no issue changing the name (and I probably will if I use Octave). Nevertheless, I want my students to have the skills to be able to use Matlab after passing my course, and my question is about whether they will possess those skills if I teach the course using Octave.

  • 4
    Personally, I found it weird to do so. If possible, it's better to change the course's name to "Intro to scientific computing", for ex and then use any language you want. – SiXUlm Apr 5 '17 at 7:43
  • @SixUlm But the goal of the course is that students would know how to use Matlab specifically at the end. If I taught them using Octave, would they have the skills necessary to work with Matlab? – Darren Ong Apr 5 '17 at 7:52
  • 5
    The syntax of Octave code is identical to that of Matlab, and most functions are the same as well (certainly those that you would use in an introductory course). So, aside from the UI differences, if your students know how to use Octave they know how to use Matlab (and vice versa). Naturally it is much easier and cheaper for a student to obtain a (legal) copy of Octave than of Matlab. – Wouter Apr 5 '17 at 8:22
  • Good students have no trouble adjusting to UI differences, but you also need to take care of your average and below average (but still passing) students. Would you do them a disservice by doing so? Personally, if I could not change the aim of the course, and I had to teach how to use Matlab, then I would use Matlab to teach Matlab. Anything else would just add confusion. Alternatively I would try (maybe not for this year, but for next years course) to change the aim of the course. – Maarten Buis Apr 5 '17 at 8:39
  • 2
    While I was a student I strongly preferred Matlab over Octave. Coming from a non-engineering background it was Matlab's great documentation, and ability to access it from its GUI, that taught me to program (in parallel to pursuing a PhD outside of computer science, and after having visited a short intro course). Moreover I didn't want to worry about the special cases, where octave behaves different from Matlab, or a lock-in due to Octave's extended syntax. – tsttst Apr 6 '17 at 3:05

As suggested also by SiXUlm in a comment, if you want to avoid being committed to a specific software, rename the course, e.g.,

Introduction to scientific computing


Introduction to scientific computing with Octave/Matlab

During the course, outline possible syntax and library differences.

when my students make it out into the real world they will most likely have to use Matlab

Most of your students will likely not use Matlab at all in the real world. A few of them will, but they would be able to fill the gaps by themselves.

  • Thanks for the answer, but changing the name isn't a problem (sorry for not making that clear in the initial version of the question). And regardless of whether the students end up using Matlab in the real world, my goal is that for students who pass this course are able to use it. – Darren Ong Apr 6 '17 at 1:20
  • @DarrenOng As I said, yes, but describe the differences between the two softwares during the class. – Massimo Ortolano Apr 6 '17 at 2:06

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.