In light of the worldwide COVID-19 situation and following the advice of the CERN Directorate we have decided to postpone this edition of the Software Carpentry event. We shall provide more information about a rescheduled event as soon as we have it.
Registration opens Friday 28 February (10am CERN time)
This event follows on from the previous successful Software Carpentry Workshop in November 2019.
Over several days we will cover the fundamentals of:
Unix (e.g. shell, bash and scripting);
Git and Github – how to version control your code
Python – fundamentals of using the Python language, as well as using numpy, how to write tests and some basic machine learning in Python
Jupyter Notebooks and SWAN
Python for analysis – how to combine Python with ROOT to start analysing data (i.e. pyroot and uproot)
This training is aimed at those who are new to HEP computing and want a fast-track to competency with software fundamentals, as well the non-expert self-taught who wish to ensure they do not have gaps in their knowledge. The first day is intended for anyone completely new to the unix environment or to Python programming. Days 2 and 3 concentrate on Git and Python courses.
The training is in-person at CERN. Given the limited number of participants, all participants are expected to the whole workshop from Wednesday to Friday. Tuesday shall cover the very fundamental basics of the unix shell and Python and is therefore optional.
No payment is required for attending this event. Accommodation, travel and subsistence is expected to be arranged by the participant. Coffee breaks are kindly sponsored by the CERN EP-SFT group (thank you!). Participants are required to have their own laptop for the workshop and an account on lxplus.
Please contact the organisers (email us) in case of any questions.
Notes for Participants
To participate in a Software Carpentry workshop, you will need access to the software described below. In addition, you will need an up-to-date web browser.
Have a look at the bottom part of this page this page for Windows/Mac/Linux instructions for installing these tools on your laptop.
We maintain a list of common issues that occur during installation as a reference for instructors that may be useful on the Configuration Problems and Solutions wiki page.
The Bash Shell
Bash is a commonly-used shell that gives you the power to do simple tasks more quickly.
Git is a version control system that lets you track who made changes to what when and has options for easily updating a shared or public version of your code on github.com. You will need a supported web browser.
You will need an account at github.com for parts of the Git lesson. Basic GitHub accounts are free. We encourage you to create a GitHub account if you don't have one already. Please consider what personal information you'd like to reveal. For example, you may want to review these instructions for keeping your email address private provided at GitHub.
When you're writing code, it's nice to have a text editor that is optimized for writing code, with features like automatic color-coding of key words. The default text editor on macOS and Linux is usually set to Vim, which is not famous for being intuitive. If you accidentally find yourself stuck in it, hit the Esc key, followed by :+Q+! (colon, lower-case 'q', exclamation mark), then hitting Return to return to the shell.
Python is a popular language for research computing, and great for general-purpose programming as well. Installing all of its research packages individually can be a bit difficult, so we recommend Anaconda, an all-in-one installer.
Regardless of how you choose to install it, please make sure you install Python version 3.x (e.g., 3.7 is fine).
We will teach Python using the Jupyter notebook, a programming environment that runs in a web browser. For this to work you will need a reasonably up-to-date browser. The current versions of the Chrome, Safari and Firefox browsers are all supported (some older browsers, including Internet Explorer version 9 and below, are not).