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.
Objectives
Be able to create a professional-grade package in Python, including code versioning, unit testing, and documentation.
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.).
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)
Syllabus
- 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
Additional information
Hours:
CM: 12 hours
TD: 18 hours
TP:
Fieldwork: