> The only 'programming language' they know is mathematica which I think is a real shame.
Mathematica is a real functional programming language. It's a lisp with CamelCase builtins and consistent naming. And that's without any of its math goodness. It has superb documentation and a huge standard library. If you master it, you can master any lisp with a simple translator. matlab is a toy by comparison.
A key concepts beyond Mathematica are pattern matching and rule-based programming, but not a functional programming.
Yes, it has lambdas and first-class functions, but that's it. What about closures, for example? Therefore one would better not call Mathematica "a real functional programming language".
BTW, rule-based paradigm and pattern matching is a standard feature of languages from Lisp family, e.g. Scheme. From that point of view Mathematica is not something unique.
Mathematica is a real functional programming language. It's a lisp with CamelCase builtins and consistent naming. And that's without any of its math goodness. It has superb documentation and a huge standard library. If you master it, you can master any lisp with a simple translator. matlab is a toy by comparison.