I think you can consider Scilab [1], which is open-source software and very similar to Matlab/Simulink. So, it will not be difficult for students to be proficient in this software very rapidly. There are lots of excellent tutorials available in Internet. You can consult, this one for example [2]. In this tutorial, the author has described controller design using Scilab.
Python is a good option. It is open source, and need little more effort than Matlab. But, is the best prototyping language, easily interfaced with hardware and many good application specific libraries. For example, Scikit image is one of the open source python library that can be used for image processing. Other common packages for common algorithm development are numpy and scipy, along with the machine learning scikit package.
I wonder if MATLAB is really not affordable! The basic kit for students is $50 as far as a I remember. You can add more packages with low cost as well. Anyways, Octave is a possibility. Although I used MATLAB a lot for prototyping, eventually , it becomes imprtant to get very comfortable with C++ or Python for actual hardware implementation. Also, nowadays ROS is becoming a standard in Robotics. Regarding computer vision, use OpenCV. It has c++ and Python interface.
Thanks all for the answers. As I am working more in robotics, I have become more comfortable with Python, C++, which are supported by the Robot Operating System ROS. Python has numerous modules for a wide variety of fields, including control and image processing. Also, Python and C++ are heavily used in embedded implementation. So, I recommend Python for beginners as it is easy scripting language while executing reasonably fast on embedded hardware. C++, should be more optimal for more performance requirements. However, most of the time Python is adequate.
There is even a micro version of Python that tuns on Arduino-like modules. It's called microPython: http://micropython.org
Also, it supports some board, like the Pyboard: https://store.micropython.org/#/store
Also, a small scale vision system that uses micorPython is available: https://openmv.io
If you are familiar with MATLAB language, then GNU Octave is considered the best open source alternative to MATLAB because the Octave syntax is largely compatible with MATLAB. Furthermore, it also runs on the major operating systems like Windows, Mac OSX, and Linux. However, it lacks a Simulink-like companion program.
If you are looking for an open source software, which has the numerical computation capability like MATLAB and the model-editing environment like Simulink that consists of the Model Editor and the Library Browser, then Scilab is the answer because Xcos is a free alternative to Simulink that comes with Scilab.
I'm surprised to see that nobody has suggested Modelica Language so far! It is not just an alternative, it is way better in many aspects. I suggest you to take a look at OpenModelica and Jmodelica as opensource and Wolfram SystemModeler as proprietary implementations of the language.
This answer may be way too late but there are some tools available in Python now that are starting to rival those in Matlab for control applications. Check out GEKKO developed at Brigham Young university in Utah. https://gekko.readthedocs.io/en/latest/overview.html