Software Carpentry (Virtual)

Europe/Zurich
Description

HEP Software Foundation, HSF Logo IRIS-HEP Logo

We are very excited to announce the Software Carpentry Workshop organised through the HEP Software Foundation and IRIS-HEP

The times for the workshop are in Central European time zone.

Over three 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
Jupyter Notebooks
Python for analysis – how to combine Python with ROOT to start analysing data (i.e. PyROOT)

This training is aimed at those who are new to HEP 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 two days are covered by The Carpentries. The third day will be taught by tutors expert in HEP software. Interactive hands-on sessions  lead by the tutor will be supported by a number of helpers to ensure all participants are able to follow and understand the material.

Given the limited number of participants, all participants are expected to attend the whole workshop.

This is a virtual event and no payment or travel is required for attending.  Participants are required to have their own laptop for the workshop.


Please contact the organizers (email us) in case of any questions.

Notes for Participants

To participate in Mattermost discussions for the workshop purposes a CERN lightweight account is needed. It is easy to get it here.

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 for Windows/Mac/Linux instructions on how to install these tools on your laptop. 

The Bash Shell

Bash is a commonly-used shell that gives you the power to do simple tasks more quickly.

Git

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.

Text Editor

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

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).

ROOT

ROOT is an open-source data analysis framework widely used by high-energy physicists. In all the HEP experiments it has become a fundamental tool, and you will have to learn the basics. You can read more about ROOT on the official webpage.

If you have installed Python via Anaconda, ROOT is available as a conda package. We suggest using a conda environment since it will bring in everything that you need, including Jupyter. On the Installing ROOT webpage, you will find the instructions to set up the environment. 

 

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.

Support: This event is supported in part by National Science Foundation grants OAC-1829707 and OAC-1829729 (FIRST-HEP), Cooperative Agreement OAC-1836650 (IRIS-HEP) and The Carpentries.

Local organising committee:

  • Michel Villanueva
  • Meirin Oan Evans
  • Sudhir Malik

Instructors:

  • Marcel Stimberg
  • Avishek Kumar
  • Devasena Inupakutika
  • Enrico Guiraud
  • Enric Tejedor Saavedra
  • Vincenzo Eduardo Padulano
  • Jim Pivarski 
Mentors:
  • Henry Schreiner
  • Michel Villanueva
  • Scarlet Norberg
  • Guillermo Fidalgo

 

 

 

Participants
  • Achyut Khanal
  • Ahmed Bassalat
  • Akhil Mithran
  • Akhilesh Tayade
  • Aniket Raj
  • Anton Stepennov
  • Anubhav Gupta
  • Audrey Francisco
  • Bisnupriya Sahu
  • Cecilia Maria Morcillo Perez
  • Charlie Batchelor
  • Chiara Magosso
  • Diana Saddi Portela
  • Donavan Ebersole
  • Farnaz Golnaraghi
  • Finn Feindt
  • Gabriel Rodriguez Linera
  • Georgios Zacharis
  • Gianluca Bianco
  • Gianpiero Vignola
  • Giovanna Salvi
  • Guillermo Antonio Fidalgo Rodriguez
  • Hajar Imam
  • Hatice Tekis
  • Iris Halilovic
  • Itzhak Tserruya
  • James McIntyre
  • Juan Salvador Tafoya Vargas
  • Kitty Price
  • Kurtis Johnson
  • Lipshit Dash
  • Manuel Alejandro Del Rio Viera
  • Mateus Hufnagel
  • Matt Connell
  • Maxim Potekhin
  • Michele Pennisi
  • Muhammad Junaid
  • Nikhil Tidke
  • Nikolaos Prountzos
  • Oleksii Kurdysh
  • Oleksii Lukianchuk
  • Olga Kodolova
  • Privatus Pius
  • Rakesh Naik
  • Raman Khurana
  • Renzo Vizarreta
  • Rishabh Raturi
  • Roy Cruz
  • Sadhana Verma
  • Sara Ruiz Daza
  • Shriniketan Acharya
  • Silviu Covrig Dusa
  • Siranush Asatryan
  • Stefano Politano
  • Tsovinar Karapetyan
  • Vaishnavi Desai
  • Valentina Guglielmi
  • Xola Mapekula
  • Yuri Gotra
Videoconference
Software Carpentry (Virtual)
Zoom Meeting ID
66360376183
Host
Sudhir Malik
Alternative hosts
Guillermo Antonio Fidalgo Rodriguez, Kilian Adriano Lieret
Useful links
Join via phone
Zoom URL
    • 09:00 09:20
      Introduction
      Conveners: Michel Hernandez Villanueva (DESY), Sudhir Malik (University of Puerto Rico (PR))
    • 09:20 10:30
      Unix

      This lesson guides you through the basics of file systems and the shell.

      Conveners: Avishek Kumar, Devasena Inupakutika, Marcel Stimberg
    • 10:30 11:00
      Coffee Break 30m
    • 11:00 12:00
      Unix: Automating Tasks with the Unix Shell

      This lesson guides you through the basics of file systems and the shell.

    • 12:00 13:00
      Lunch 1h
    • 13:00 14:00
      Python: Python I

      The best way to learn how to program is to do something useful, so this introduction to Python is built an example of data analysis.

      Conveners: Avishek Kumar, Devasena Inupakutika, Marcel Stimberg
    • 14:00 14:30
      Coffee Break 30m
    • 14:30 16:30
      Python: Building Programs with Python

      The best way to learn how to program is to do something useful, so this introduction to Python is built an example of data analysis.

    • 09:00 10:30
      Git

      In this lesson we use Git from the Unix Shell.

      Conveners: Avishek Kumar, Devasena Inupakutika, Marcel Stimberg
    • 10:30 11:00
      Coffee Break 30m
    • 11:00 12:00
      Git

      In this lesson we use Git from the Unix Shell.

    • 12:00 13:00
      Lunch 1h
    • 13:00 14:30
      Python: Python II

      The best way to learn how to program is to do something useful, so this introduction to Python is built an example of data analysis.

      Conveners: Avishek Kumar, Devasena Inupakutika, Marcel Stimberg
    • 14:30 15:00
      Coffee Break 30m
    • 15:00 16:30
      Python: Defensive Programming

      The best way to learn how to program is to do something useful, so this introduction to Python is built an example of data analysis.

      Conveners: Avishek Kumar, Devasena Inupakutika, Marcel Stimberg
    • 09:00 09:45
      Python for analysis: ROOT and Jupyter notebooks

      In this session we focus on using python in HEP in conjunction with ROOT for data analysis

      Conveners: Enric Tejedor Saavedra (CERN), Enrico Guiraud (EP-SFT, CERN), Vincenzo Eduardo Padulano (Valencia Polytechnic University (ES))
    • 09:45 10:00
      Break 15m
    • 10:00 11:00
      Python for analysis: plots and fits with ROOT and RDataFrame

      In this session we focus on using python in HEP in conjunction with ROOT for data analysis

      Conveners: Enric Tejedor Saavedra (CERN), Enrico Guiraud (EP-SFT, CERN), Vincenzo Eduardo Padulano (Valencia Polytechnic University (ES))
    • 11:00 11:20
      Coffee Break 20m
    • 11:20 12:45
      Python for analysis: HEP analysis with RDataFrame

      In this session we focus on using python in HEP in conjunction with ROOT for data analysis

      Convener: Vincenzo Eduardo Padulano (Valencia Polytechnic University (ES))
    • 12:45 14:00
      Lunch 1h 15m
    • 14:00 15:20
      Python for analysis 2: Uproot and Scikit-HEP

      This session is an introduction to the Scikit-HEP ecosystem of tools, starting with Uproot and Awkward Array.

      Convener: Jim Pivarski (Princeton University)
    • 15:20 15:40
      Coffee Break 20m
    • 15:40 17:00
      Python for analysis 2: Uproot and Scikit-HEP

      This session is an introduction to the Scikit-HEP ecosystem of tools, starting with Uproot and Awkward Array.

      Convener: Jim Pivarski (Princeton University)