Training in software and computing are essential ingredients for the success of any HEP experiment. As most experiments have similar basic prerequisites (Unix shell, Python, C++, …) we want to join our efforts and create one introductory software training curriculum that serves HEP newcomers the software skills needed as they enter the field, and in parallel, instill best practices for writing software.
The curriculum is comprised of a set of standardized modules, so that students can focus on what is most relevant to them. More about the style of these modules is written in the guidelines for training material.
This mission relies on active contributors: This page outlines the different roles that need to be filled.
|The Unix Shell||Introduction to the unix command line/shell||Created & Maintained by software carpentries|
|Advanced Shell||E.g. SSH|
|Version controlling with git||Created & Maintained by software carpentries|
|Programming with python||Created & Maintained by software carpentries|
|Build systems: From
|Distributed file systems and grid computing|
|A simple analysis||A simple analysis using CMS open data||Created by S. Wunsch; maintained by HSF|
|Unit testing||Unit testing in python||Created by K. Huff|
|Docker||Introduction to the docker container image system||Created by M. Feickert|
|Workflows & reproducability||E.g.
|CI/CD||Continous integration and deployment with gitlab||Created by G. Stark; maintained by HSF|
|Event generation and MC||
|alpaka||alpaka is a header-only C++ abstraction library for accelerator development|
Contributions of any kind are very welcome! There are various ways you can get involved:
Where can I find the source (github repository) of the web pages linked above?
Scroll down the page and click on “Source” or “Edit on GitHub”.