JACS

JBCA Autumn Computing Sessions

JACS is a series of introductory computing sessions aimed at new postgraduate students at the Jodrell Bank Centre for Astrophysics. In the past we've covered a range of topics, from an introduction to UNIX, to parallel programming, to bayesian statistics and inference. Whilst the sessions are aimed at new postgraduate students, they are open to all. They're quite informal and you're encouraged to bring along your laptop and work through examples during the sessions. We're always looking for new ideas for sessions to run (and volunteers to chair sessions), so please get in touch if you've got any suggestions. JACS is currently organised by Francesca Pearce and Laura Driessen.

JACS 2018-2019

JACS 2018-2019 is organised by Francesca Pearce and Laura Driessen. The Autumn schedule and related materials are available below.
Time and Date Chair Topic Description
2018-2019 Luke Hart JBCA Guide A handy guide to JBCA for new starters.
10-11am, 4th October Tom Armitage Introduction to JBCA & Linux In this first session we'll cover everything you need to get up and running at JBCA. You're welcome to bring your laptops to follow along. We'll be going over setting up python, useful terminal commands and a few quality of life enhancements. The presentation slides can be found here. A PDF guide to JBCA computing including a more in depth primer for linux can be found here.
1pm, 9th October 2017 Mat Malenta Git & Backups TBC
10am-Midday, 18th October Rachael Ainsworth Data Management TBC
10-11am, 25th October Josh Hayes Outreach/Public Engagement in JBCA TBC
10-11am, 1st November Ant Holloway Computer Clusters & MPI TBC
10-11am, 8th November Alex Clarke Intro to Machine Learning TBC
10-11am, 15th November TBC TBC TBC
10-11am, 22nd November Adam Avison Interferometry TBC
10-11am, 29th November Ian Harrison Bayesian Inference TBC
10-11am, 6th December Rich Rollins TBC TBC

JACS 2017-2018

JACS 2017-2018 was organised by Tom Armitage and Francesca Pearce. The Autumn schedule and related materials are available below.
Time and Date Chair Topic Description
1pm, 2nd October 2017 Introduction to JBCA and Linux Tom Armitage An introduction to JBCA to help get you started. We will cover basic terminal commands and various useful online resources. There will be multiple examples so if you have a laptop please bring it along. The presentation slides can be found here. The PDF guide to JBCA computing is here and materials from the STFC summer school are all located here.
1pm, 9th October 2017 Git and Backups Tom Armitage Hard drives fail, laptops get stolen and code breaks. In this session we go through how organise your code and data to help you deal with the times when one of these these happen. Slides with links to all resources can be found here.
11am, 19th October 2017 Outreach & Engagement in JBCA Sally Cooper The aim of this session is to provide an overview of the outreach and engagement JBCA is involved in. This will include key dates for your diary, how to volunteer for events, people of interest/key contacts, an overview of some of our basic activities including the VR headset and how to get creative. Slides can be found here
1pm, 30th October 2017 Latex & Papers George Bendo This session will cover the basics of Latex and how to write up your results for a scientific paper. Materials are here
1pm, 6th November 2017 How to use a computer cluster Ant Holloway and Tom Armitage We all wish we had more computing power. This session is focused on how to use the facilities at JBCA to speed up your computing run time. The first half of this session will be on what facilities we have available at JBCA and how to use them. The second half will be on how to use MPI, a standardised message passing interface, to parallelise your code to take advantage of multi-core machines. We will be using the python package mpi4py to show the main features of MPI and some of the common pitfalls. Example scripts for mpi4py can be found here and thee slides for using MPI with python are here. The slides covering the JBCA clusters and how to use them will be put up here soon (6/11/17).
1pm, 13th November 2017 Intro to Machine Learning Hayden Rampadarath & Philippa Hartley Using data from thousands of Go games, Google created a machine, AlphaGo that defeated the world's best Go player. They then made another machine, AlphaGo Zero that, with only knowledge of the rules, defeated AlphaGo in 30 mins! This is Machine Learning.
From predicting your favourite movies, to determining more accurate insurance premiums, to autonomous self-driving vehicles Machine Learning is rapidly becoming a staple in the tech world. So how to get involved? While there are tons of available resources online, one can easily get overwhelmed with simply getting started. In this JACS session Philippa and I will be giving an introduction to Machine Learning, discussing best practices, and will even be walking you through a simple ML example using real world data. The session will end with a list of useful online resources as well as our experiences navigating this complex, yet fascinating field.
Philippa's slides on the theory and concepts behind machine learning can be found here. Hayden's github page with the worked through examples and slides can be found here.
1pm, 20th November 2017 Basics of interferometry Adam Avison In the era of ALMA, LOFAR, JVLA and the upcoming SKA the cutting edge of radio and mm astronomy is based on interferometric observations. In this JACS session Adam will give a whistle stop tour of why we build interferometers, how they work and a background to interferometric data processing. here.
1pm, 27th November 2017 Coding best practices Richard Rollins Through discussions of both "good" and "bad" examples of code we will cover a number of general standards and best practices for designing and writing software that is both user-friendly and easy to maintain. All examples will be in Python although only a basic level of programming in any language is required.
1pm, 4th December 2017 Bayesian Inference Ian Harrison I will first give an introduction to the Bayesian interpretation of probability, and why it is definitely the best (probably). I will then talk about useful things you can achieve by applying Bayesian statistics to data, including finding the best fitting model parameters and their uncertainties, and choosing between competing models, again emphasising why Bayesian methods do this better, quicker and easier than other ones. This will be a broad overview, giving an extensive reading list and set of keywords to google when you would like to know how to model and interpret your data.
1-3pm, 11th December 2017 Data Management Rachael Ainsworth At this workshop you will:
  • Learn how to organise your data from day 1 so you can find it again at the end of your PhD research programme
  • Discover how to license and share your data to build your reputation and gain more citations
  • Create a data management plan with our help during the session
  • Find out what you need to do to comply with funder mandates, including the EPSRC.

JACS 2016-2017

JACS 2016-2017 was organised by Monique Henson and Tom Armitage. The autumn schedule and related materials are available below.
Time and Date Chair Topic Description
11am, 29th September 2016 James Jeffrey (Valtech) Easy scripting and automation with bash A brief introduction to basic scripting using the Bourne Shell, writing a script, conditionals, arguments, reading, handling and outputting data. Scripts for the session are available here and here.
11am, 6th October 2016 Tom Armitage The linux survival guide Everything you need to get set up on the computers at JBCA, including tips for finding papers, using Linux, setting up your python on your JBCA computer and accessing your computer from home. Slides from this session are available here and there is step-by-step guide to Unix (created by Jack Radcliffe) here.
1pm, 14th October 2016 Tom Armitage Your new friend Git and other ways to make your life easier Hard drives fail, computers break and researchers accidentally delete data. Backing up your data regularly means these events become a minor inconvenience, rather than a catastrophe. This session will cover the best ways to back up your data and will also introduce you to Git, which is a great way to back up code, track changes to it and share it with others. Slides from the session are available here.
1pm, 21st October 2016 Adam Avison Basics of interferometry This session will cover the two element interferometer and then talk about expanding it out to more dishes and then on to software and imaging. Slides for this session are available here (pdf) and here(pptx).
1pm, 28th October 2016 Sami Niemi (Valtech) From billion pound missions to data science How does an astrophysicist working on calibration of HST slitless spectra and semi-analytical galaxy formation models move to reviewing electronic circuit diagrams of the Visible Imager for Euclid, finally end up developing machine learning models to predict the probability of default or winning a court case? How does being a data scientist differ from being a post doc at UCL or staff at STScI? What skills have turned out to be extremely useful and valuable and what have I had to develop to make the transition? The talk describes a personal journey from academia to industry, discussing the similarities and differences. Slides from this talk are here.
1pm, 4th November 2016 Monique Henson LaTeX: Making your equations (and papers) look beautiful Ever tried writing equations in Microsoft Word? It's slow, fiddly and not all that beautiful. LaTeX is the tool used by astronomy researchers to create research papers and is essential knowledge for any budding researcher. This will be a hands-on session and you are encouraged to bring along a laptop. No software is required, just access to the internet. Slides and notes for this session are here and here. Overleaf also has a handy guide to LaTeX here.
1pm, 11th November 2016 Ant Holloway and Tom Armitage How to use a computer cluster We all wish we had more computing power. This session is focused on how to use the facilities at JBCA to speed up your computing run time. The first half of this session will be on what facilities we have available at JBCA and how to use them. The second half will be on how to use MPI, a standardised message passing interface, to parallelise your code to take advantage of multi-core machines. We will be using the python package mpi4py to show the main features of MPI and some of the common pitfalls. Tom's slides from the session are here and his example script is here. Ant's slides on the computing facilities at JBCA are here.
1pm, 18th November 2016 Monique Henson Creating an online presence This session will be a whirlwind tour of tools and tricks for managing your online presence. We will discuss different techniques for building personal websites, the value of Twitter and LinkedIn for researchers and explain why you keep getting emails about ORCID. No prior knowledge is required. If anyone has any tools or tips they’d like to share, please come along and share them too. The slides from this session are available here
1pm, 25th November 2016 Richard Rollins Working with Compilers and Makefiles This session will cover the basic use of compilers when working with code written in C, C++ and Fortran. Starting from simple single-file examples we will discuss compiling and linking as a two-stage process, working with header files, libraries and modules and automating the build process for larger projects using GNU Make. Slides are here with additional materials here
1pm, 2nd December 2016 Max Potter Creating games with Unity Learn how to make games with Unity and C#! No experience of programming or game making required, just rip art assets from the internet, copy and paste some code and you're good to go! There is a bit more to it than that, but we'll go over the basics and you can learn how to create your very own version of Flappy Bird using the same tools as professional game designers. Unity is the game engine and developer environment we'll be using - it's free and lets you release your work on multiple different platforms. C# is the scripting language we'll be using to control the elements of the game. Both are easy to learn, but creating a viral hit game in an hour is a tall order so if you want a head start then have a look over some of the basics on the Unity tutorials site. There are some additional asset files that you will need for the session here.
3pm, 8th June 2017 Tom Armitage and Francesca Pearce Creating an academic poster Conference season is fast approaching and many of you will likely need to create an academic poster at some point in your PhD. We will have many example posters for you to look at to see what works and what doesn’t. We will also have suggestions about the best programs to use and where to get your poster printed. Slides are here
3pm, 15th June 2017 Richard Rollins Understanding Hardware Performance The inherent performance limits of computer hardware and the effects that they have on software performance can seem unintuitive to novice programmers. This session will develop a general mental model for computation, memory access and locality and use it to explain the performance of a range of simple benchmarks run on CPUs. All examples will be in C++ although only a basic level of programming in any language is required. Slides are here and additional materials here.

JACS 2015-2016

JACS 2014-2016 was organised by Monique Henson and Jack Radcliffe. The schedule and related materials are below.

Time and Date Chair Topic Description
30 October Jack Radcliffe Introduction to JBCA, vnc and UNIX Slides for this session are here.
8 October Jack Radcliffe Advanced UNIX Materials for this session are here.
15 October Adam Avison Python Materials for this session are here.
22 October Git and Makefiles Monique Henson Slides for this session are here.
29 October Data storage and backups Ant Holloway Materials for this session are available here.
2 November LaTeX Jack Radcliffe Materials for this session are here.
12 November Report Writing Neal Jackson and Myfanwy Lloyd Materials for this session are here.
19 November General Statistics Joe Zuntz Materials for this session are the same as in 2015.
26 November Bayesian Statistics Joe Zuntz Materials for this session are the same as in 2015.
3 December Bayesian Sttaistics Joe Zuntz Materials for this session are the same as in 2015.
10 December MPI Bob Watson Materials for this session are here.
14 April 2016 Wikipedia Editing Mike Peel Learn how to contribute to Wikipedia, including an introduction to its main policies and guidelines, its community of editors, and the editing interface. During the practical session, you will be guided through the process of creating a user page and making your first edits to Wikipedia articles. Remember to bring your laptop! The link to register for Wikipedia is here and the introductory pages are here and here.
21 April 2016 Academic Posters Monique Henson Academic posters are widely used at conferences to promote and share work - particularly for early career researchers. In this session we’ll use real examples of posters to highlight the do’s and don’ts of conference poster design. We’ll also discuss the software available for making posters and information you need before starting on your design. Slides from this session are here and a summary of do's and don'ts for academic posters is here.
28 April 2016 C-shell Patrick Weltervrede This session will cover a number of examples demonstrating what is possible with c-shell scripts. This should give you a good basis to start writing your own scripts if you encounter situations where this would be useful. This typically would be executing similar processing commands on a list of input files and gathering the relevant information in a single place. Materials from this session are here.
5 May 2016 How to Code Better Laura Armitage An introduction to code development from a computer scientist’s perspective. How to use software principles and best practices to write cleaner, flexible, reusable code and spend less time debugging. Slides from this session are here.
12 May 2016 CUDA Mateusz Malenta Materials for this session are here.

JACS 2014-2015

JACS 2014-2015 was organised by Sam Cusworth and Chris Wallis. The autumn schedule and related materials are available below.
Time and Date Topic Chair Description
23 September Introduction to UNIX Part 1 Chris Wallis Here is a link to a helpful tutorial.
30 September Introduction to UNIX Part 2 Chris Wallis Materials for this session can be found here. The slides prepared by Chris are here.
7 October Makefiles, LaTeX and git Sam Cusworth Materials for this session can be found here. The slides prepared by Sam are here. The Not So Short Introduction to LaTeX can be found here.
14 October IDL Clive Dickinson Materials for this session can be found here.
21 October Python Adam Avison Slides for this session can be found here.
28 October Object Oriented Programming Scott Kay No materials provided.
6 November Machine Learning Rob Lyon Rob's presentation and notes can be found here. Rob has also made some example code available along with some data.
11 November Statistics and Bayesian Interference Part 1 Joe Zuntz Slides for lecture 1 are here.
18 November Statistics and Bayesian Interference Part 2 Joe Zuntz Slides for lecture 2 are here. The data for part two of the hard question are here and the worked solution for the main part of the hard problem is here
25 November Statistics and Bayesian Interference Part 3 Joe Zuntz See Joe's website here.
9 December Debugging and Testing Dick Long In this session we discussed gdb: a GNU debugger for C/C++ and fortran. Download the materials.