This page provides a curated collection of learning resources for Data Science, programming and scientific computing using Python, R and MATLAB.
The resources are particularly useful for students in Mathematics, Statistics, Data Science and related fields who want to develop practical programming, data-analysis and computational skills for coursework, research and academic projects.
The collection includes courses, tutorials, books, documentation and practical tools suitable for both beginners and more advanced learners.
Note: Some external platforms may offer both free and paid options. Course availability and access conditions can change, so please check the official website.
If you are completely new to programming, choose one language first rather than trying to learn everything at the same time.
A good choice for general programming, Mathematics, Data Science, Machine Learning and scientific computing.
Programming for Everybody — Beginner-friendly introduction to programming with Python from the University of Michigan.
https://www.coursera.org/learn/python
CS50’s Introduction to Programming with Python — Harvard course covering fundamental programming concepts using Python.
https://www.edx.org/learn/python/harvard-university-cs50-s-introduction-to-programming-with-python
A particularly useful choice for Statistics, data analysis, visualisation and statistical research.
R for Data Science (2nd Edition) — Free online book covering R, data transformation, visualisation, data tidying and reproducible analysis.
https://r4ds.hadley.nz/
A useful choice for numerical mathematics, engineering, modelling and scientific computing.
MATLAB Onramp — Official introductory MATLAB course from MathWorks.
https://matlabacademy.mathworks.com/details/matlab-onramp/gettingstarted
Python is widely used in scientific computing, Mathematics, Statistics, Data Science, Machine Learning and research.
Programming for Everybody – University of Michigan — Beginner course covering variables, functions, loops and fundamental Python programming.
https://www.coursera.org/learn/python
CS50’s Introduction to Programming with Python – Harvard — Comprehensive introductory Python programming course.
https://www.edx.org/learn/python/harvard-university-cs50-s-introduction-to-programming-with-python
Python Official Tutorial — Official introduction to Python syntax and features.
https://docs.python.org/3/tutorial/
Corey Schafer – Python Tutorials — Popular collection of practical Python video tutorials.
https://www.youtube.com/@coreyms/playlists
NumPy Learn — Official learning resources for numerical computing, arrays, linear algebra and scientific calculations with Python.
https://numpy.org/learn/
pandas – Getting Started — Official tutorials for working with tabular data, data cleaning, transformation, statistics and time series.
https://pandas.pydata.org/docs/getting_started/
SciPy — Scientific computing library providing tools for optimisation, integration, differential equations, statistics, linear algebra and more.
https://scipy.org/
Matplotlib — Official tutorials for creating mathematical, statistical and scientific visualisations with Python.
https://matplotlib.org/stable/tutorials/
Python Data Science Handbook — Free online book covering NumPy, pandas, Matplotlib, Machine Learning and the wider Python Data Science ecosystem.
https://jakevdp.github.io/PythonDataScienceHandbook/
Python Official Documentation — Main reference for the Python language and standard library.
https://docs.python.org/3/
NumPy Documentation
https://numpy.org/doc/stable/
pandas Documentation
https://pandas.pydata.org/docs/
SciPy Documentation
https://docs.scipy.org/doc/scipy/
Matplotlib Documentation
https://matplotlib.org/stable/
R is widely used in Statistics, Data Science, statistical modelling, visualisation and academic research.
R for Data Science (2nd Edition) — Excellent free book covering data import, transformation, visualisation, tidying, programming and reproducible research using R.
https://r4ds.hadley.nz/
R Programming – Johns Hopkins University — Introduction to programming and data analysis using R.
https://www.coursera.org/learn/r-programming
Learn the tidyverse — Official learning resources for the collection of R packages commonly used for Data Science.
https://www.tidyverse.org/learn/
tidyverse — Collection of R packages for Data Science, including data manipulation, transformation and visualisation.
https://www.tidyverse.org/
ggplot2 — Popular R package for creating statistical graphics and data visualisations.
https://ggplot2.tidyverse.org/
tidymodels — Framework for statistical modelling and Machine Learning using R.
https://www.tidymodels.org/start/
The R Project — Official website for the R programming language.
https://www.r-project.org/
R Manuals — Official R manuals and technical documentation.
https://cran.r-project.org/manuals.html
Posit Resources — Learning materials, videos, guides and resources for R and Data Science.
https://posit.co/content-library
R-bloggers — Community website collecting tutorials, examples and articles about R.
https://www.r-bloggers.com/
MATLAB is widely used in Mathematics, numerical analysis, engineering, modelling, optimisation and scientific computing.
MATLAB Onramp — Official self-paced introductory MATLAB course from MathWorks.
https://matlabacademy.mathworks.com/details/matlab-onramp/gettingstarted
Introduction to Programming with MATLAB — Introductory programming course using MATLAB.
https://www.coursera.org/learn/matlab
MATLAB Documentation — Official MathWorks documentation covering MATLAB functions, programming, mathematics, graphics and data analysis.
https://www.mathworks.com/help/matlab/
MATLAB Examples — Examples demonstrating MATLAB techniques and applications.
https://www.mathworks.com/help/matlab/examples.html
These resources are useful for developing a stronger understanding of data analysis, probability, statistical modelling and Data Science.
Python Data Science Handbook — Free book covering essential Python tools used in Data Science.
https://jakevdp.github.io/PythonDataScienceHandbook/
R for Data Science — Free book providing a practical introduction to Data Science using R and the tidyverse.
https://r4ds.hadley.nz/
Kaggle Learn — Short practical courses covering Python, pandas, Data Science, Machine Learning and related topics.
https://www.kaggle.com/learn
StatQuest with Josh Starmer — Clear video explanations of Statistics, Machine Learning and Data Science concepts.
https://www.youtube.com/@statquest
An Introduction to Statistical Learning — Widely used introduction to statistical learning and Machine Learning, with versions for R and Python.
https://www.statlearning.com/
The Elements of Statistical Learning — Advanced reference covering statistical learning, regression, classification, neural networks, support vector machines and related methods.
https://hastie.su.domains/ElemStatLearn/
Machine Learning combines Mathematics, Statistics and computing to develop methods that learn patterns from data.
scikit-learn – Getting Started — Official introduction to one of the most widely used Machine Learning libraries in Python.
https://scikit-learn.org/stable/getting_started.html
Kaggle Learn — Practical short courses in introductory and intermediate Machine Learning.
https://www.kaggle.com/learn
Math for Machine Learning with Python — Course focusing on mathematical foundations useful for Machine Learning.
https://www.edx.org/learn/math/edx-math-for-machine-learning-with-python
StatQuest – Machine Learning — Accessible explanations of regression, classification, decision trees, neural networks and other Machine Learning concepts.
https://www.youtube.com/@statquest
scikit-learn — Machine Learning tools for classification, regression, clustering, dimensionality reduction, preprocessing and model evaluation.
https://scikit-learn.org/
scikit-learn Examples — Practical examples demonstrating different Machine Learning algorithms and techniques.
https://scikit-learn.org/stable/auto_examples/
tidymodels — Collection of R packages for modelling and Machine Learning using a consistent framework.
https://www.tidymodels.org/
An Introduction to Statistical Learning with R — Statistical and Machine Learning methods with practical R applications.
https://www.statlearning.com/
For Mathematics students, programming becomes particularly useful when working with numerical methods, symbolic computation, optimisation, linear algebra, differential equations and mathematical modelling.
NumPy — Numerical arrays, matrix operations, linear algebra and mathematical computing with Python.
https://numpy.org/
SciPy — Scientific algorithms for optimisation, integration, interpolation, differential equations, linear algebra, statistics and related mathematical problems.
https://scipy.org/
SymPy — Symbolic Mathematics library for Python, including algebra, calculus, equations, matrices and symbolic computation.
https://docs.sympy.org/latest/tutorials/intro-tutorial/
MATLAB — Numerical computing environment widely used for modelling, numerical Mathematics and scientific applications.
https://www.mathworks.com/products/matlab.html
Interactive environment for combining executable code, mathematical expressions, visualisations and explanatory text in notebooks.
Use Jupyter directly in your browser without installing anything.
Browser-based environment for running Python and Jupyter notebooks without installing Python locally.
https://colab.research.google.com/
Useful for version control, managing research code, collaborating on projects and sharing software.
GitHub
https://github.com/
GitHub Learn
https://skills.github.com/
Popular development environment and ecosystem for working with R and Data Science.
Use MATLAB through a web browser where access is available.
You do not need to complete every resource on this page. Choose resources according to your goals.
Python basics → NumPy → Matplotlib → SciPy → Jupyter
A good route for Mathematics students who want to use programming for numerical and scientific work.
Python → NumPy → pandas → Matplotlib → Statistics → scikit-learn
A good route for students interested in Data Science and Machine Learning.
R → R for Data Science → tidyverse → ggplot2 → Statistics → tidymodels
A good route for students interested in Statistics, Data Science and statistical research.
Python/NumPy/SciPy or MATLAB
A useful route for numerical analysis, optimisation, differential equations, mathematical modelling and computational Mathematics.
Python → NumPy/pandas → Probability & Statistics → Linear Algebra → scikit-learn
Developing a good mathematical foundation before moving to advanced Machine Learning is strongly recommended.
Maths Volunteers also provides courses, talks, workshops, research projects and other learning opportunities for students interested in Mathematics.
https://www.mathsvolunteers.com/all-programmes
https://www.mathsvolunteers.com/short-courses
https://www.mathsvolunteers.com/research-projects
Find Master’s, PhD, Postdoc, research and academic opportunities.
https://www.mathsvolunteers.com/open-positions
Explore scholarship opportunities, application guidelines and useful scholarship resources.
https://www.mathsvolunteers.com/scholarships
Disclaimer: Maths Volunteers provides these external resources for educational and informational purposes only. External websites, courses and learning platforms are managed by their respective organisations. Course content, availability, pricing and access conditions may change. Please check the official website for current information.