We will describe the main concepts of Machine Learning (ML) and give some clues to address a problem of ML. In particular, we will talk about :
- the concepts of AI/Machine Learning/Deep Learning,
- supervised/unsupervised learning,
- the preprocessing of the data,
- the general principle of the algorithm,
- the main pitfalls,
- the evaluation of the training and the outcomes.
Some...
This course is aimed at students wishing to learn how to use the scientific computing platforms at the Paris Saclay Computing Center (https://mesocentre.universite-paris-saclay.fr/). We will review the different existing computing architectures (cloud, supercomputer). We will then look at how to access the VirtualData cloud and the Ruche HPC computer, and how to use the resources effectively...
We will describe the main concepts of Deep Learning (DL). We will focus on Multilayer Neural Network (MLP) and Convolution Neural Network (CNN).
In particular, we will talk about :
- artificial neuron,
- MLP : structure and how it works,
- CNN : structure and how it works,
- a brief review of other NN structures.
Some exercises will be provided to program simple MLP and CNN in Python...
Discovery of software engineering tools and methodologies to write more tested,
documented code that is easier to understand and maintain.
- static analysis
- tests
- documentation
The examples will be based on the C++ and Python programming languages.
Prerequisites: some knowledge of C++ or Python.
Second part of "Make Your Code More Robust". See the contribution "Make Your Code More Robust 1/2".
First, we'll take a closer look at the basic mechanisms of the Python language, beyond what can be guessed by blindly copying and pasting examples, in order to avoid the most common traps and pitfalls. Then, we'll debate the interactions with Linux. In particular, we will talk about :
- variables semantic, duck typing,
- automatic memory management,
- builtin types and collections,
-...
Introduction to CMake, which is the most widely used tool for managing C/C++ projects, especially in a cross platform context. The course is targeted at people who have some programming experience with C/C++ or Fortran.
In particular, we will talk about:
- building simple binaries and libraries
- build and running tests via ctest
- integrating third party applications
- modern cmake best...
First contact with C++, in its most used version in new physics projects : aka C++17.
The course is targeted at people who have programming experience, especially with Python. In particular, we will talk about :
- builtin types, variables, functions,
- passing arguments by value and by reference,
- type inference and templates,
- returning a tuple of values,
- std::vector vs...
When using numbers of type float or double, are you aware that 0.1+0.2 does not equal 0.3 ? Let’s review the theory behind such pitfalls, and discuss some case studies :
- the quadratic equation in kinematics calculations
- variance calculations in data analysis
- calculations with complex numbers
- accurate summation in large Monte-Carlo calculations
- precision in matrix and geometry...
Most computer programs are inefficient and could serve the same purpose while using 10-1000x less resources (time, energy, memory…). However, achieving this result requires know-how that is not part of the typical programming curriculum. In this course, you will learn a general methodology to make any program use computing resources more efficiently:
1. Safety first
2. Set a useful...
Second part of "Make Your Code More Efficient". See the contribution "Make Your Code More Efficient 1/2".
Research is based on reproducibility and an incremental improvement process. Open Science movement has been developed to facilitate this work and relies on 3 legs: open access to publications, open data and libre software.
Topics :
- open data
- their organization, the conditions of their publication and their reuse
- their valorization
- Free/libre software
- the software licences,
-...