LinkedIn AMS MathSciNet Author Profile
Machine Learning, AI & Computer Science Resources

Machine Learning & AI

Computer Science Resources

Students attending my final year lectures must have a working knowledge of Python.

  • Since the academic year 2016-2017, students undertaking their dissertation on Machine Learning, deep learning, etc., are using either Python with the PyTorch,, TensorFlow, and scikit-learn libraries, or Torch for R.
  • 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, \(\TeX\) etc.
  • The Digital Library of Mathematical Functions of the National Institute of Standards and Technology (NIST); See A special functions handbook for the digital age, R. Boisvert, C.W. Clark, D. Lozier, and F. Olver, Notices of the American Mathematical Society (2011), vol 58, 905-911, . This new online library supersedes the celebrated book by M. Abramowitz and I. Stegun: the Handbook of Mathematical Functions.
    The NIST Statistical Reference Datasets (NIST StRD) for assessing the numerical accuracy of statistical software packages. This database is very useful for checking parts of statistical procedures.
    Useful information on the issue of numerical accuracy of statistical software packages is available at B.D. McCullough's web page.
  • 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.
Updated March 1, 2024.