SAMBa Programming Induction, 2021

Welcome to the redirection page for SAMBa's programming training, held during the University of Bath's induction week 2021. A core pillar of the training provided by SAMBa in the MRes year is to provide students with experience and familiarity with how computing is used to enhance or support mathematical research, which encompasses a wide range of applications and hence, languages. As such, SAMBa provides a short, self-paced introductory course for each of the langauges that students are expected to use at some point during their MRes year (and most likely, during the PhD). This material is produced, organised, and maintained by SAMBa students who are currently in the PhD years of their time at SAMBa; and is reviewed each year to ensure that changes to the SAMBa program are reflected in the training that is provided. Unlike more general courses in programming, these courses provide a background that leans heavily on the techniques that a student will be expected to employ whilst using each language: the MATLAB course focuses on array manipulation, efficient programming, and iterative methods, for example, because this encompasses the ways in which MATLAB is employed in the repective MRes units.

Prior to joining SAMBa, you will have recieved worksheets designed to test your ability in four programming languages that are frequently used in the MRes year of the CDT course, the postgraduate MSc course, and in the wider scientific and industrial communities. The purpose of this induction session is for you to work at your own pace, on the language of your choosing - of course, we recommend you work through the languages you are least familiar with! If you were able to complete the worksheet for a particular language, there is no need to look over the training course we provide for that language, because you already have enough familiarity with it. Otherwise, there will be student demonstrators on-hand to answer any questions you come across whist working through the material - below is a table detailing everyone's expertise.

Demonstrator Python MATLAB R LaTeX
Margaret Duff Yes Yes No Yes
Will "Wiggles" Graham Yes Yes No Yes
Jeremey Worsfold Yes Yes Yes Yes
Katie Phillips Yes Yes No Yes
Piotr Morawiecki Yes Yes Yes Yes
Josh Inoue Yes No Yes Yes
Shahzeb Raja Noureen Yes Yes No Yes

Once you are ready to begin, either scroll down or follow the links below to your chosen programming language.


Reminder: Before you begin

You will have recieved instructions detailing how to join the programming session prior to the beginning of welcome/induction week. In particular, it is important that you have completed registration online and activated your Bath account, and have signed into Microsoft Teams and joined the "SAMBa Induction Programming Session" team. You should have been sent the team code to allow you to join already. For those of you who cannot activate your Bath accounts on time, please make sure you have created a Microsoft account, and then joined the "SAMBa Induction Programming Session" team in the same way - you will only be able to join as a guest, but will have access to all the functionality that you need for the programming session.

If there are any questions or concerns, please contact me via email (which can be found on this page).

Python Logo

Course Worksheet Worksheet (solutions) Language Website

Python is a widely-used, open-source, multi-purpose programming language that has seen it's popularity boom over the recent decade. It now boasts a large number of additional modules to enrich it's base utility, an active developer- and user-community, and an easy-to-read syntax complimented by an extensive documentation. If you are installing Python for the first time, we recommend you install Anaconda, as this comes with an easy-to-use package manager, and several important packages pre-installed - including the Jupyer Notebook and Spyder editing programs. Those more familiar with the command line or terminal might consider Conda instead (which does away with the graphical interface).



Course Worksheet Worksheet (solutions) Language Website

MATLAB is a language built around handling vectors, matricies, and more generally arrays in a mathematically-intuitive way. It offers a simplistic and easy implimentation of iterative methods, powerful graphical outputs, and intuitive (from a mathematical standpoint) formulae and code structure. Installing MATLAB requires a license, either academic or personal, so unless you have a copy installed on your personal machine the best way to access MATLAB is through the University of Bath remote desktop (or remote application) program.

R Logo

Course Worksheet Worksheet (solutions) Language Website

R is a language that is prolific in statistical applicaitons. As this suggests, it provides a wide variety of statistical techniques like linear/nonlinear modelling, statistical tests, and time-series analysis. It's graphical techniques and markdown capabilities make it possible to produce publication-ready graphics, or even technical code documentation, complete with examples. Whilst die-hard statisticians may insist that R is perfect the way it is and nothing else is needed, we recommend that you also also install RStudio if you are new to R (or even if you are experienced and have never tried it), just so that the interface is a bit friendlier.

LaTeX Logo

Course Worksheet Worksheet (solutions) Language Website

Given that you will eventually have to write a maths-heavy thesis, and will probably write several reports and papers along the way, you're going to want to streamline the process of actually formatting your work into documents. Enter LaTeX; a typesetting system, specifically designed for scientific writing. It is freely available and has many editors, both downloadable and online, which come ready-to-use and even include document templates. Editors can appear confusing at first, but each editor will have a fairly similar layout and it's own documentation. Our course recommends Overleaf (an online LaTeX editor), but TeXMaker is also a good first choice if you've never worked with LaTeX before and would like to use an offline editor.

About and License

The material in these courses was gathered, developed, and is maintained by SAMBa students. Each course has a repository hosted on GitHub which details each year's contributors to the courses;

© 2019 Jack Betteridge and James Grant. NBFancy Logo
The format, appearence, and development of these resources makes use of NBFancy; which is subject to the above copyright. Further information can be found here.