• ECTS

    4 credits

  • Training structure

    Faculty of Science

Description

This course focuses on discovering best practices for professional-level coding.
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 the basic concepts of programming, as well as discovering Python's scientific libraries, including "numpy, scipy, pandas, matplotlib, seaborn."
Beyond knowledge of these fundamental packages, we will introduce modern coding practices: (unit) testing, version control (git), automatic documentation generation, etc.

Read more

Objectives

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

Read more

Teaching hours

  • Software Development - TutorialsTutorials6 p.m.
  • Software Development - CMLecture12 hours

Mandatory prerequisites

Students must 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 loops).
 


 
Recommended prerequisites: A basic knowledge of Python would be an advantage, as well as numerical analysis (floating point, rounding errors, etc.).

Read more

Knowledge assessment

- CC
- Project (70% of the final grade)
- Format: in small groups, with balanced contributions from each member.
- Required work: a GitHub repository where the work is available, a summary 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: lists, dictionaries, tuples, if statements and loops, exceptions
    3. classes (`__init__`, `__call__`, etc.), operator overloading, file management, git: an introduction
    4. `numpy`: basic concepts of matrices (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, introduction 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

Hours:
CM: 12 hours
TD: 18 hours
TP:
Fieldwork:

Read more