• ECTS

    4 credits

  • Component

    Faculty of Science

Description

This course focuses on discovering good coding practices for a professional level.
The language used is Python, but some elements of bash and git will also be useful.
A special emphasis will be placed on data processing and visualization at the heart of the course.
We will focus mainly on basic programming concepts, as well as discovering Python's scientific libraries, including "numpy, scipy, pandas, matplotlib, seaborn".
Beyond the knowledge of these fundamental packages, we will introduce modern code practices: (unit) testing, version control (git), automatic documentation generation, etc.

Read more

Objectives

Be able to create a professional level package in Python including, code versioning, unit testing and documentation.

Read more

Necessary pre-requisites

Students should be familiar with the basic concepts of probability, optimization, linear algebra and statistics. A minimum knowledge of basic programming structures is also required (if, then... else, while/for loop).
 


 
Recommended prerequisites: A minimum of knowledge in Python would be a plus, as well as in numerical analysis (floating point, rounding errors, etc.).

Read more

Knowledge control

- CC
- Project (70% of the final grade)
- Modality: small group, with a balanced contribution from each member.
- Expected work: a "github" repository where the work is available, a synthesis report and a defense.
- Graded practical work (15% of the final grade)
- Quiz (15% of the final grade)

Read more

Syllabus

  1. coding: algorithms, modules, basic types, functions, loops
    2. coding: list, dictionary, tuples, if and loops, exceptions
    3. classes (`__init__`, `__call__`, etc...), operator overloading, file management, git: a first introduction
    4. `numpy`: basic notions about arrays, slicing, simple linear algebra, masking; `matplotlib`: first plots
    5. `github`, creating an ssh key, various git commands, conflict, pull request
    6. `numpy`: casting, concatenation, `imshow`, `meshgrid`, casting, copy, scipy`: EDO, Interpolation, Optimization
    7. hands on git, intro to linux basics and command line tools
    8. `scipy`: Images/channel, FFT, Pandas: missing data
    9. bash, regexp, grep, find, rename, Python virtual environment
    10. Pandas : first steps
    11. Python virtual env: Anaconda, IDE: VScode, Create a Python Module
    12. Pandas : learn more
    13. Create a Python module, unit tests
    14. Unit test
    15. Sparse matrices and graphs and memory
    16. Numba
    17. Documentation with Sphinx
    18. Statsmodels
Read more

Additional information

Hourly volumes:
CM : 12h
TD : 18h
TP :
Field :

Read more