Since the academic year 2016-2017, students undertaking their dissertation on Machine Learning, deep learning, etc., are using
either Python
with the PyTorch, fast.ai,
TensorFlow, and
scikit-learn
libraries, or Torch for R.
The efficiency of the running of Python programs is substantially improved by calling
them within a Julia program.
Some statistical procedures are using Octave, a matrix oriented
programming language for numerical computing, the syntax of which is
similar to Matlab, up to some changes in the syntax of a few functions.
The C++
programming language is still the most powerful language. Valgrind is a useful tool for memory leak debugging,
profiling, etc.
NLopt
is a free/open-source library for nonlinear optimization, callable from C,
C++, Fortran, Python, Julia,
R,
Octave, and Matlab programs.
Donald Knuth's home page. Don Knuth is the author of the celebrated books:
The Art of Computer Programming
You can find there everything important on semi-numerical and numerical algorithms,
T_{e}X etc.
BOINC,
the Berkeley Open Infrastructure for Network Computing, is an open-source software for volunteer and grid computing.
BOINC projects are covering several fields: physics, astronomy,
mathematics, biology, artificial intelligence, cryptography, computer science, etc. If your project is computationally very
intensive, and intellectually attractive, you can transform it into a BOINC project.