• 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 particular 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 the discovery of Python's scientific libraries, including "numpy, scipy, pandas, matplotlib, seaborn".
Beyond knowledge of these fundamental packages, we will introduce modern practices for code: (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 prerequisites

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


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

Read more

Knowledge control

- CC
- Project (70% of final grade)
- Modality: small group, with a balanced contribution from each member.
- Expected work: a "github" repository where the work is available, a summary report and a defense.
- Graded practical work (15% of final grade)
- Quiz (15% of 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 of 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. Learn more about Pandas
    13. Creating a Python module, unit testing
    14. unit testing
    15. Sparse matrices and graphics and memory
    16. Numba
    17. Documentation with Sphinx
    18. Statsmodels
Read more

Further information

Timetable:
CM : 12h
TD : 18h
TP :
Field :

Read more